Как Unix реализует права доступа к файлам?

Это должно сделать задание:
"НЕПРАВИЛЬНЫЙ" в тексте в файлах в папках и файлах в данной папке:

SEARCH_DIR="/var/log"
for i in $(find $SEARCH_DIR -maxdepth 1 -mindepth 1); do 
    DIR_CHECK=$(grep INCORRECT $i) 
    [[ "$DIR_CHECK" =~ "INCORRECT" ]]  \
        && echo -e "\e[00;31m$i\e[00m" \
        || echo -e "\e[00;32m$i\e[00m"
done

"НЕПРАВИЛЬНЫЙ в тексте в файлах в папках в данной папке":

SEARCH_DIR="/var/log"
for i in $(find $SEARCH_DIR -maxdepth 1 -mindepth 1 -type d); do 
    DIR_CHECK=$(grep INCORRECT $i)
    [[ "$DIR_CHECK" =~ "INCORRECT" ]]  \
        && echo -e "\e[00;31m$i\e[00m" \
        || echo -e "\e[00;32m$i\e[00m"
done

"НЕПРАВИЛЬНЫЙ" от имени папок и файлов в данной папке:

SEARCH_DIR="/var/log"
for i in $(find $SEARCH_DIR -maxdepth 1 -mindepth 1); do
    DIR_CHECK=$(echo $i | grep INCORRECT)
    [[ "$DIR_CHECK" =~ "INCORRECT" ]]  \
        && echo -e "\e[00;31m$i\e[00m" \
        || echo -e "\e[00;32m$i\e[00m"
done

"НЕПРАВИЛЬНЫЙ" от имени папок в данных папках:

SEARCH_DIR="/var/log"
for i in $(find $SEARCH_DIR -maxdepth 1 -mindepth 1 -type d); do
    DIR_CHECK=$(echo $i | grep INCORRECT)
    [[ "$DIR_CHECK" =~ "INCORRECT" ]]  \
        && echo -e "\e[00;31m$i\e[00m" \
        || echo -e "\e[00;32m$i\e[00m"
done
7
12.05.2015, 15:04
3 ответа

Чтобы добавить ответ Эрика (не иметь репутации на комментарий), разрешения не хранятся в файле, но файл inode (указатель файловой системы на физическое местоположение файла на диске) как метаданные вместе с владельцем и временными метками. Это означает, что файл копирования в файловую систему не POSIX, таких как NTFS или FAT, удалит данные разрешения и владельца.

Владелец файлов и группа - это просто пара номеров, идентификатора пользователя (UID) и идентификатора группы (GID) соответственно. Root UID равен 0, как стандартный, так что файл отобразится как принадлежит root On (почти) каждую систему, совместимую Unix. С другой стороны, владелец без корня не будет сохранен неэффективным способом.

Так что короче говоря, собственность корней будет сохранена, если Tarball'd или скопирован через Extx USBSTick или тому подобное. Собственность без корня ненадежна.

12
27.01.2020, 20:15

Для владельца / группы это зависит от того, кто делает копию и как.

  • Регулярный пользователь: всегда будет владельцем копий всех команд
  • root , с CP (за исключением параметра - PROVERVE )
  • «Сохранение» будет по умолчанию для корня с TAR
0
27.01.2020, 20:15

, который будет зависеть от того, как вы копируете его. Если вы поместите его в TAL шар мяч и скопировали это, то, потом рассуждали его, TAR будет перспективать разрешения. Если вы используете rsync , это также будет, в зависимости от флагов, перспективных разрешений. Эти приложения несут ответственность за разрешения. Если вы были до SCP , это разрешения не будут сохранены.

Команда, выполняющая копирование, отвечает за управление разрешениями на вновь созданный файл.

4
27.01.2020, 20:15

Теги

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