Предоставляет ли «Владение» каталог или файл специальные разрешения?

Я немного прочитал о chmod и хорошо разбираюсь в правах доступа к файлам. Но меня немного смущает понятие «владелец».

Если моя учетная запись пользователя является «владельцем» каталога, но у него нет разрешений (chmod 0000), имеет ли мой пользователь больше возможностей, чем другой случайный пользователь в системе? Предполагая, что ни один из пользователей не является суперпользователем?

7
задан 13 October 2012 в 16:21

4 ответа

Да. Как владелец, вы можете использовать chmod, чтобы предоставить себе все необходимые разрешения.

0
ответ дан 13 October 2012 в 16:21

Если моя учетная запись пользователя является «владельцем» каталога, но у него нет разрешений (chmod 0000), имеет ли мой пользователь больше возможностей, чем другой случайный пользователь в системе?

Простой ответ: Нет , у владельца не будет никакого другого средства для того, чтобы быть владельцем каталога, когда он chmoded для [ 110]. Поскольку бит разрешения для владельца также равен 0, что означает отсутствие прав на чтение / запись / выполнение для него.

Проверьте бит разрешения файла Linux

.
0
ответ дан 13 October 2012 в 16:21

Каталог - это просто особый вид файла, поэтому следующее относится в равной степени к каталогам и файлам.

Быть владельцем позволяет вам сбросить доступ к файлу, чтобы вы могли затем прочитать файл. Другие пользователи, кроме root, не смогут этого сделать.

До тех пор, пока вы не сбросите доступ, файл будет недоступен для вас так же, как и для других пользователей.

Быть владельцем файла не позволяет вам удалить (удалить его). У вас должен быть доступ на запись к каталогу, в котором вы его удалили.

Пример сценария, демонстрирующий, что можно и чего нельзя делать. (Не запускать с правами root, но требуется доступ sudo.):

#!/bin/bash

DIR=directory$
FILE=$DIR/file$

echo We can remove it - own both file and directory
mkdir $DIR
date > $FILE
chmod 0000 $FILE
ls -ld $DIR $FILE
rm -f $FILE
ls -ld $DIR $FILE
echo

echo We can not remove it - no write access to directory
date > $FILE
chmod 0000 $FILE
chmod -w $DIR
ls -ld $DIR $FILE
rm -f $FILE
ls -ld $DIR $FILE
echo

echo We can remove it - even if we do not own it
chmod 0000 $FILE
chmod +w $DIR
sudo chown root:root $FILE
ls -ld $DIR $FILE
rm -f $FILE
ls -ld $DIR $FILE
echo

echo We can not remove it - even if we can read it - do not own directory
date > $FILE
cat $FILE
sudo chown root:root $DIR
ls -ld $DIR $FILE
cat $FILE
rm -f $FILE
ls -ld $DIR $FILE
echo

sudo chown $LOGNAME $DIR
echo Now we can clean up
rm -f $FILE
rmdir $DIR

# EOF
0
ответ дан 13 October 2012 в 16:21

chmod 00000 делает каталог / файл недоступным для владельца и группы. Единственное, что вы и группа, владеющая файлом, можете сделать, это удалить его с помощью rm -rf tmp/. Ничего лучше, чем пример:

$ mkdir tmp
$ chmod 00000 tmp
$ cd tmp
bash: cd: tmp: Permission denied

Вы можете увидеть каталог с ls -l

d--------- 2 rinzwind rinzwind   4096 Oct 13 14:35 tmp

и только с sudo вы можете войти в каталог ... [ 1110]

 $ sudo su
 # cd tmp
 #

Что касается других сообщений: да, вы можете удалить файл / dir, который изменен на 00000:

$ mkdir tmp
$ chmod 00000 tmp
$ rm -rf tmp/
$ touch 1
$ chmod 00000 1
$ rm 1
rm: remove write-protected regular empty file `1'? y
$ 

Как владелец, вы также можете сбросить разрешения. Это то, что кому-то еще (кроме root) тоже разрешено.

0
ответ дан 13 October 2012 в 16:21

Другие вопросы по тегам:

Похожие вопросы: