web-dev-qa-db-ja.com

別のユーザーのホームディレクトリでmkdirにルートを使用する

別のユーザーの/home/devuser1/pubic_htmlフォルダーの下にフォルダーを作成するのに少し苦労しました。 Sudoの使用を避け、別の方法を探しています。上記のフォルダのアクセス許可は次のようになります。

drwxr-s--- 2 devuser1  www-data 4096 Apr 28 19:40 public_html

または、Sudo接頭辞を使用すると仮定すると、どのような影響がありますか?フォルダを作成するためにSudoを使用することは悪い習慣だと私は読んだ。新しいフォルダが作成された後も、問題のユーザーの所有権を変更しています。例:

chown -vR devuser1:www-data /home/devuser1/public_html/$vhost
29
maGz

Sudo -u [username] mkdir /home/[username]/public_html/[folder_name]は問題なく動作します。

同じユーザーとしてログインしてpublic_htmlの下にフォルダを作成した場合、権限と所有権は同じであることがわかります。

su -c "mkdir /home/[username]/public_html/[folder_name]" [username]を呼び出すこともできます

29
maGz

installを使用すると、特定の所有者、グループ、モードでディレクトリを作成できます。

install -d -o <user> -g <group> -m <mode> <path>
32
user2313838

これらの権限が与えられた場合、ディレクトリの所有者またはスーパーユーザーのみがサブディレクトリを作成できます。

フォルダーを作成するために追加の権限を使用することを回避できる唯一の方法は、所有権を自分に変更し(Sudoを使用)、サブディレクトリを作成し、最後に所有権を所有者に返しますが、見栄えがよくありません私への解決策。

1
RSFalcon7

mkdir -p /srv/postgres/data/mydir しかし理由は

drwxr-xr-x 3 root root 4.0K Apr 7 08:26 srvには所有者rootがいます

どちらもinstall -d -o <user> -g <group> -m <mode> <path>@ user2313838

Sudo -u postgres mkdir -p /srv/postgres/data/mydir機能 @ maGz

だから私はそれを2つのコマンドに分割しなければなりません:

Sudo mkdir -p /srv/postgres/data/mydir
Sudo chown postgres:postgres /srv/postgres -R
0
hannes ach