Geçerli kullanıcının bir dizinde yazma iznine sahip olup olmadığını belirleme


9

Yaparak dizin sahibini belirleyebilir biliyorum:

ls -ld ~/foo | awk '{ print $3 }'

Daha sonra bunu yaparak mevcut kullanıcıyla karşılaştırabilirsiniz:

if [[ $(ls -ld ~/foo | awk '{ print $3 }') == "$USER" ]] # or $(id -u -n ) instead of $USER
then
    echo "You are the owner"
else
    echo "You are NOT the owner"
fi

Ancak sahibi olmadan yazma izniniz olabilir. Bunu nasıl belirliyorsunuz?

Yanıtlar:


20

sanırım

if [ -w ~/foo ]; then ....

ne istersen yapmalısın.

Ayrıca, stat -c %U ~/foosahibi elde etmek lsçıktıyı ayrıştırmaktan daha iyi bir yoldur .


1
statModern Linux sistemlerine özgü olduğunu unutmayın , diğer unices farklı statveya hiç olmayabilir . Ls ayrıştırma genellikle sorun için bir reçetedir , ancak üçüncü kelime olarak sahibini ayrıştırma çoğunlukla işe yarar (işler daha sonra bozulur); hala mükemmel değil (bazı sistemler kullanıcı adlarında boşluklara izin verir).
Gilles 'SO- kötü olmayı bırak'
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.