mkdir dizinine başka bir kullanıcının giriş dizininde root kullanma


27

Başka bir kullanıcının klasörü altında bir klasör oluşturmaya çalışırken biraz zor zamanlar geçiriyorsanız /home/devuser1/pubic_html. sudoAlternatif kullanmaktan kaçınmaya çalışıyorum . Söz konusu klasördeki izinler şu şekildedir:

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

Alternatif olarak, sudoöneki kullandığımı varsayarsak , bunun anlamı ne olurdu? sudoBir klasör oluşturmak için kullanmanın kötü bir uygulama olduğunu okudum . Yeni klasör oluşturulduktan sonra, hâlâ söz konusu kullanıcıya sahipliğini değiştiriyorum. Örnek:

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

Yanıtlar:


31

İle install, belirli bir sahibi, grubu ve modu olan bir dizin oluşturabilirsiniz:

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

29

sudo -u [username] mkdir /home/[username]/public_html/[folder_name] iyi çalışıyor.

Gördüğüm kadarıyla, aynı kullanıcı olarak giriş yapıp altındaki klasörü oluşturursam izinleri ve mülkiyeti aynıdır public_html.

Ayrıca arayabilirsin su -c "mkdir /home/[username]/public_html/[folder_name]" [username]


2
Çalıştırdığınızda sudo -u USERNAME mkdir DIRNAME, mkdirkomutu kullanıcı olarak yürütüyorsunuz USERNAME. Bu, giriş yapmakla tam olarak eşdeğer değildir USERNAME, çünkü giriş yapmak aynı zamanda ortam değişkenlerinin ve benzerlerinin ayarlanması anlamına da gelir;
Gilles 'SO- kötülük olmayı bırak'

1
Ayrıca, bu kullanıcının izni olmayabilir.
mahemoff

1

Bu izinler göz önüne alındığında, yalnızca dizinin sahibi veya süper kullanıcı alt dizinler oluşturabilir.

Klasörü oluşturmak için fazladan ayrıcalık kullanmaktan kaçınmanın tek yolu, mülkiyeti kendinizle (birlikte sudo) değiştirmek, alt dizini oluşturmak ve son olarak mülkiyeti sahibine döndürmektir, ancak bana iyi bir çözüm gibi görünmüyor.


evet, bu bir zor. Bu aptalca bir soru, ama seçeneklerim neler?
maGz

Ne hakkında ?: o kullanıcı olarak komutunu çalıştırarak (root olarak) sudo -u devuser1 mkdir /home/devuser1/public_html/test. Bu, klasörü oluşturmakla aynı sudodeğil mi? ls -alortaya koyuyor:drwxr-sr-x 2 devuser1 www-data 4096 Apr 28 23:49 test
maGz

Belki de saf oluyorum, ancak sudobundan sonra mülkiyeti değiştirdiğiniz sürece bir klasör oluştururken hiçbir kötülük görmüyorum .
RSFalcon7,

Kadarıyla lskullanıcı yılların içeriğine ortaya koymaktadır public_html, bu kadar değişen sahiplik gerekli değildir gerçi, belki izinleri olsa görünür.
maGz

Sanırım bunu düşünme konusunda da naif davranıyorum: Klasörü şu şekilde oluşturmuyorum su, bunun yerine , klasörü oluşturacak olan kullanıcı olarak kendimi doğrulamak için kullanıyorum ... mantıklı mı?
maGz

0

Yapmaya çalıştım mkdir -p /srv/postgres/data/mydirama çünkü

drwxr-xr-x 3 root root 4.0K Apr 7 08:26 srv sahibi var root

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

ne de @maGzsudo -u postgres mkdir -p /srv/postgres/data/mydir çalışır

Bu yüzden onu iki komuta bölmeliyim:

sudo mkdir -p /srv/postgres/data/mydir
sudo chown postgres:postgres /srv/postgres -R
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.