команда linux для разрешений на чтение, запись и исполняемые файлы

Я выбираю путь в Linux для установки. например, / var / test / installer Как я могу проверить, доступны ли для этого пути разрешения на чтение, запись и выполнение?

Я попробовал "найти команду", но без особого успеха.

Ребята, выполнение "ls -l" мне не помогает. Вот настоящая проблема ... у моего раздела / var нет прав на выполнение. Я вижу это с помощью команды "mount", т.е.> mount / dev / sda1 на / var типа ext3 (rw, noexec, nosuid, nodev, noatime)

но ls -l для любой папки в / var, т.е. / var / test / install показывает мне права на чтение, запись и выполнение.

Итак, я вижу единственный способ выполнить команду монтирования, чтобы проверить noexec.

Твои мысли.

Заранее спасибо.

===============================================

Все, что я понимаю, в конечном итоге, это то, что мне нужно проверить два уровня разрешений.

  1. Разрешения для точки монтирования

    Использование команды "mount" или проверка файла / etc / fstab

  2. разрешения для отдельных папок

    Команда Usinf "ls -l"

Это решило мою проблему.


person Aryan    schedule 19.02.2013    source источник
comment
Вы имели в виду 'ls -l' и видели часть 'rwxr-xr-x' слева, нет?   -  person Kristiono Setyadi    schedule 19.02.2013
comment
См. Соответствующие обновления.   -  person Aryan    schedule 21.02.2013
comment
У вас есть какие-то конкретные потребности или цели, почему вы хотите это сделать? Если да, укажите это также, чтобы люди не запутались в том, в каком направлении вы хотите двигаться с таким вопросом, поэтому другие могут решить вашу проблему именно так, как вы хотите, чтобы она была решена.   -  person Kristiono Setyadi    schedule 21.02.2013
comment
Эрасон, который я хочу сделать, - это ... проверки разрешений только на чтение и запись для установки недостаточно ... поскольку этот путь имеет разрешение на запись ... все будет установлено хорошо ... но когда я попытаюсь запустить службы после этого установка ... Ничего не работает ... поскольку у меня нет исполняемых привилегий. Это проблема, с которой я столкнулся ... Итак, при выборе пути установки ... я хочу проверить все эти разрешения   -  person Aryan    schedule 21.02.2013
comment
Это был бы другой вопрос. Также отказ выполнить что-либо может быть вызван рядом вещей, помимо раздела, смонтированного с помощью noexec, например недостаточно памяти, нет разрешений (только группа может выполнять это, и вы не являетесь ее частью), SELinux и т. д.   -  person Cristian Ciupitu    schedule 21.02.2013


Ответы (4)


взгляните на команду test

из man-страницы

       -c FILE
          FILE exists and is character special

       -d FILE
          FILE exists and is a directory

       -e FILE
          FILE exists

       -f FILE
          FILE exists and is a regular file

       -g FILE
          FILE exists and is set-group-ID

       -G FILE
          FILE exists and is owned by the effective group ID

       -h FILE
          FILE exists and is a symbolic link (same as -L)

       -k FILE
          FILE exists and has its sticky bit set

       -L FILE
          FILE exists and is a symbolic link (same as -h)

       -O FILE
          FILE exists and is owned by the effective user ID

       -p FILE
          FILE exists and is a named pipe

       -r FILE
          FILE exists and read permission is granted

       -s FILE
          FILE exists and has a size greater than zero

       -S FILE
          FILE exists and is a socket

       -t FD  file descriptor FD is opened on a terminal

       -u FILE
          FILE exists and its set-user-ID bit is set

       -w FILE
          FILE exists and write permission is granted

       -x FILE
          FILE exists and execute (or search) permission is granted

Хорошая страница руководства

person BigMike    schedule 19.02.2013
comment
Я думаю, это действительно сложно использовать против ... разрешений на файлы. Я не нашел подходящего примера. - person Aryan; 19.02.2013
comment
в чем трудность делать if (test -x somefile) или if (test -w somefile)? - person BigMike; 19.02.2013
comment
кроме того, команда test - это ярлык с if [-x somefile], который я считаю довольно естественным при написании сценариев оболочки. - person BigMike; 19.02.2013
comment
@Aryan: вам нужно проверить статус выхода команды, например затем запустите echo $? из командной строки или сделайте что-нибудь вроде test -x FILE && echo "FILE is executable". - person Cristian Ciupitu; 19.02.2013

попробуйте ls -l [имя_файла] см. здесь

person iGili    schedule 19.02.2013

ls -la /path/

Sample Output:
-rw-r--r-- 1 eclipse adm 14112 Feb 18 08:49 st433.dat
-rw-r--r-- 1 eclipse adm 24700 Feb 18 08:49 st433.lst
-rw-r--r-- 1 eclipse adm 14112 Feb 18 08:49 st434.dat
-rw-r--r-- 1 eclipse adm 24624 Feb 18 08:49 st434.lst

Биты разрешения интерпретации:
-rw-r - r--
0123456789

Вы можете видеть, что список файлов принадлежит пользователю eclipse и группе adm

Первый бит 0 - это особый случай, пустой для обычных файлов d для каталога и т.д., не имеет отношения к разрешениям.

Биты 123 определяют права владельца (в данном случае пользователя eclipse). rw - означает, что пользователь eclipse может как читать, так и писать в эти файлы.

Биты 456 являются разрешениями группы, поэтому в этом случае (r--) любой, кто принадлежит к группе adm, может читать, но не изменять указанные файлы.

Биты 789 - это разрешения для «других», поэтому файл также доступен для чтения другим пользователям, но не для записи.

rwx rwx rwx
ДРУГИЕ ГРУППЫ ПОЛЬЗОВАТЕЛЕЙ
разрешения на чтение / запись / выполнение

person Louis Papaloizou    schedule 19.02.2013

Если команда test не для вас, возможно, stat(1) поможет вам:

[joe@hal ~]$ stat --format='%A' /etc/passwd # access rights in human readable form
-rw-r--r--
[joe@hal ~]$ stat --format='%a' /etc/passwd # access rights in octal
644
[joe@hal ~]$ stat --format='%f' /etc/passwd # raw mode in hex
81a4

81a4 в шестнадцатеричной системе счисления - это 100644 в восьмеричной системе.

На странице руководства chmod(1) описано, как интерпретировать файловый режим:

Буквы rwxXst выбирают биты режима файла для затронутых пользователей: чтение (r), запись (w), выполнение (или поиск каталогов) (x), выполнение / поиск только в том случае, если файл является каталогом или уже имеет разрешение на выполнение для некоторых пользователь (X), установить идентификатор пользователя или группы при выполнении (ях), флаг ограниченного удаления или липкий бит (t). Вместо одной или нескольких из этих букв вы можете указать ровно одну из букв ugo: разрешения, предоставленные пользователю, владеющему файлом (u), разрешения, предоставленные другим пользователям, которые являются членами группы файла (g), и разрешения, предоставленные пользователям, которые не относятся ни к одной из двух предыдущих категорий (o).

Числовой режим состоит из одной-четырех восьмеричных цифр (0-7), полученных путем сложения битов со значениями 4, 2 и 1. Пропущенные цифры считаются ведущими нулями. Первая цифра выбирает установленный идентификатор пользователя (4) и набор идентификаторов группы (2), а также атрибуты ограниченного удаления или закрепления (1). Вторая цифра выбирает разрешения для пользователя, владеющего файлом: чтение (4), запись (2) и выполнение (1); третий выбирает разрешения для других пользователей в группе файла с такими же значениями; и четвертый для других пользователей, не входящих в группу файла, с такими же значениями.

person Cristian Ciupitu    schedule 19.02.2013