Es ist schwierig, einen Ordner unter dem /home/devuser1/pubic_html
Ordner eines anderen Benutzers zu erstellen . Ich versuche zu vermeiden, sudo
nach einer Alternative zu suchen. Die Berechtigungen für diesen Ordner lauten wie folgt:
drwxr-s--- 2 devuser1 www-data 4096 Apr 28 19:40 public_html
Angenommen, ich verwende das sudo
Präfix. Was wären die Auswirkungen? Ich habe gelesen, dass es eine schlechte Übung ist sudo
, einen Ordner zu erstellen. Nachdem der neue Ordner erstellt wurde, ändere ich immer noch den Besitz des betreffenden Benutzers. Beispiel:
chown -vR devuser1:www-data /home/devuser1/public_html/$vhost
quelle
sudo -u USERNAME mkdir DIRNAME
, führen Sie denmkdir
Befehl als Benutzer ausUSERNAME
. Dies entspricht nicht genau dem Anmelden alsUSERNAME
, da das Anmelden auch das Festlegen von Umgebungsvariablen usw. beinhaltet, aber es ist der Teil, der zählt, nämlich das Ausführen eines Prozesses als bestimmter Benutzer.Mit diesen Berechtigungen kann nur der Eigentümer des Verzeichnisses oder der Superuser Unterverzeichnisse erstellen.
Die einzige Möglichkeit, zusätzliche Berechtigungen zum Erstellen des Ordners zu vermeiden, besteht darin, den Eigentümer selbst zu ändern (mit
sudo
), das Unterverzeichnis zu erstellen und den Eigentümer schließlich an den Eigentümer zurückzugeben, sieht für mich jedoch nicht nach einer guten Lösung aus.quelle
sudo -u devuser1 mkdir /home/devuser1/public_html/test
. Das ist nicht dasselbe wie das Erstellen des Ordners,sudo
oder?ls -al
enthüllt:drwxr-sr-x 2 devuser1 www-data 4096 Apr 28 23:49 test
sudo
solange Sie danach den Besitzer wechseln.ls
Angaben zum Inhalt des Benutzers geht hervorpublic_html
, dass ein Eigentümerwechsel nicht erforderlich ist. Möglicherweise sind jedoch Berechtigungen erforderlich.su
, sondern benutze ihn, um mich als der Benutzer zu authentifizieren , der den Ordner erstellen wird. Macht das Sinn?Ich habe versucht, ein,
mkdir -p /srv/postgres/data/mydir
aber weil zu tundrwxr-xr-x 3 root root 4.0K Apr 7 08:26 srv
hat besitzerroot
Weder
install -d -o <user> -g <group> -m <mode> <path>
@ user2313838noch
sudo -u postgres mkdir -p /srv/postgres/data/mydir
funktioniert @maGzAlso muss ich es in zwei Befehle aufteilen:
quelle