menggunakan root ke mkdir di direktori home pengguna lain

27

mengalami sedikit kesulitan mencoba membuat folder di bawah folder pengguna lain /home/devuser1/pubic_html. Saya mencoba untuk menghindari menggunakan sudodan mencari alternatif. Izin pada folder tersebut berbunyi:

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

Atau, dengan asumsi saya menggunakan sudoawalan, apa implikasinya? Saya telah membaca bahwa ini adalah praktik buruk untuk digunakan sudodalam membuat folder. Setelah folder baru dibuat, saya masih mengubah kepemilikannya kepada pengguna yang dimaksud. Contoh:

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

Jawaban:

31

Dengan install, Anda dapat membuat direktori dengan pemilik, grup, dan mode tertentu:

install -d -o <user> -g <group> -m <mode> <path>
pengguna2313838
sumber
29

sudo -u [username] mkdir /home/[username]/public_html/[folder_name] bekerja dengan baik.

Dari apa yang saya lihat izin dan kepemilikannya sama jika saya masuk sebagai pengguna yang sama dan membuat folder di bawah public_html.

Anda juga bisa menelepon su -c "mkdir /home/[username]/public_html/[folder_name]" [username]

maGz
sumber
2
Saat Anda menjalankan sudo -u USERNAME mkdir DIRNAME, Anda menjalankan mkdirperintah sebagai pengguna USERNAME. Ini tidak persis setara dengan masuk sebagai USERNAME, karena masuk juga menyiratkan pengaturan variabel lingkungan dan sebagainya, tapi itu bagian yang penting, yaitu menjalankan proses sebagai pengguna tertentu.
Gilles 'SO- stop being evil'
1
Juga pengguna itu mungkin tidak memiliki izin.
mahemoff
1

Dengan izin itu, hanya pemilik direktori atau pengguna super yang dapat membuat subdirektori.

Satu-satunya cara Anda dapat menghindari menggunakan hak istimewa ekstra untuk membuat folder adalah mengubah kepemilikan untuk diri sendiri (dengan sudo), membuat subdirektori dan akhirnya mengembalikan kepemilikan kepada pemilik, tetapi tidak terlihat seperti solusi yang baik untuk saya.

RSFalcon7
sumber
ya, yang sulit ini. Ini pertanyaan konyol, tapi apa pilihan saya?
maGz
bagaimana dengan (sebagai root) menjalankan perintah sebagai pengguna itu ?: sudo -u devuser1 mkdir /home/devuser1/public_html/test. Itu tidak sama dengan membuat folder dengan sudoitu? ls -almengungkapkan:drwxr-sr-x 2 devuser1 www-data 4096 Apr 28 23:49 test
maGz
Mungkin saya naif, tapi saya tidak benar-benar melihat ada kejahatan dalam membuat folder dengan sudoselama Anda mengubah kepemilikan setelah itu.
RSFalcon7
Dari apa yang lsterungkap pada konten pengguna public_html, tampaknya seolah-olah mengubah kepemilikan tidak diperlukan, mungkin izin sekalipun.
maGz
Saya pikir saya juga naif dalam memikirkan hal ini: Saya tidak membuat folder sebagai su, sebaliknya saya menggunakannya untuk mengotentikasi diri saya sebagai pengguna yang akan membuat folder ... apakah itu masuk akal?
maGz
0

Saya mencoba melakukan mkdir -p /srv/postgres/data/mydirtetapi karena

drwxr-xr-x 3 root root 4.0K Apr 7 08:26 srv memiliki pemilik root

tidak ada install -d -o <user> -g <group> -m <mode> <path> @ user2313838

juga tidak sudo -u postgres mkdir -p /srv/postgres/data/mydirberhasil @maGz

Jadi saya harus membaginya dalam dua perintah:

sudo mkdir -p /srv/postgres/data/mydir
sudo chown postgres:postgres /srv/postgres -R
hannes ach
sumber