Измените разрешения на -rwxr-xr-x [дубликат]

На этот вопрос уже есть ответ здесь:

Мне нужна помощь с домашним заданием, чтобы изменить права доступа к файлу. Он хочет, чтобы это было -rwxr-xr-x ? Не уверен, как сделать разрешения пользователя. Спасибо.

7
задан 21 April 2018 в 12:13

5 ответов

Позволяет анализируют Вашу домашнюю работу: -rwxr-xr-x, повредите их в три части -rwx|r-x|r-x:

  1. rwx: читайте, запишите и выполнитесь для пользователя или владельца
  2. r-x: читайте, никакая запись, и выполнитесь для элементов группы
  3. r-x: то же как в 2 но на этот раз для любого человека иначе others.

Нет необходимо будет выполнить команду с помощью программы разрешения изменения chmod как так:

chmod 755 filename

Объясненный:

  • измените разрешение на:

    - user: 7 => r(4), w(2), x(1)
    - group: 5 => r(4), -, x(1)
    - others: r(4), -, x(1)
    

Теперь необходимо владеть тем файлом или папкой, чтобы сделать это или быть в sudo группе.

17
ответ дан 23 November 2019 в 06:07

Существует также более "болтливая" версия для установки полномочий:

 chmod u=rwx,g=rx,o=rx filename

Это означает:

  • дайте пользователю (u=) rwx полномочия, и
  • дайте группу (g=) rx полномочия, и
  • дайте другим (o=) rx полномочия.

Можно не учесть части, которые Вы не хотите изменять, например:

 chmod u=rwx filename

установит полномочия пользователя и оставит другие как они.

Можно даже "добавить" или "substract" полномочия:

 chmod g-x filename

удалит группу x разрешение, и

chmod o+w filename

добавит разрешение записи для других.

Для установки SUID SGID и липкий бит используют s и t полномочия:

  • chmod u+s filename - наборы SUID
  • chmod g+s filename - наборы SGID
  • chmod a+t filename - устанавливает липкий бит (a означает "все", т.е. u и g и o)
11
ответ дан 23 November 2019 в 06:07

Обязательная преамбула

Изменение полномочий важных файлов и каталогов в Вашей системе может повредить вещи плохо. При нахождении этого неудобным, чтобы должными быть переустановить систему или получить данные из живой сессии, удостоверьтесь, что Вы экспериментируете с полномочиями и владением безопасно. В то время как Вы изучаете свой путь вокруг файловой системы и основных команд, необходимо постараться не работать chmod и chown с sudo или в корневой оболочке. Тем путем ошибка разрешения сообщит, что Вы могли бы делать что-то опасное, и необходимо проверить команду снова.

Мы изменяем полномочия файла с chmod. Эта команда имеет рекурсивный флаг -R. Этот флаг часто используется излишне, и это редко полезно, потому что мы обычно не хотим, чтобы каталоги имели те же полномочия как файлы в них. Потребность каталогов выполнить разрешение, которое будет вводиться, так не полезны без него, в то время как файлы только должны выполнить разрешение, если они - программы. Без -R флаг, chmod может нанести только ограниченный и поддающийся ремонту ущерб, но с -R можно сделать ужасную путаницу системы в единственной команде. Если Вы используете -R, рассмотрите, нуждаетесь ли Вы действительно в нем и проверяете путь к файлу на опечатки.


Режим, который Вас попросили дать файлу, является общим

-rwxr-xr-x

Ведущий тире указывает, что это - регулярный файл. x биты в трех местах указывают, что это должен быть исполняемый файл любым пользователем. Так, этот режим подходит для программ, которые любой может выполнить. Большинство программ в Вашей системе имеет этот режим, как Вы видите путем исследования файлов в /usr/bin, /bin и так далее (я объясняю, как исследовать полномочия позже в этом ответе). Для безопасности важно, чтобы только владелец, корень, мог записать для (изменения) этих файлов, таким образом, программы, которые Вы запускаете, не могут быть случайно (или иначе) изменены пользователями без полномочий пользователя root.

Как указано в ответе George Udosen биты полномочий установлены отдельно для пользователя (владелец файла), группа и другие. Это объяснено, например, в нашем теге Wiki для chmod и во многих других местах в Интернете, и даже в Вашей системе; можно читать об этом путем выполнения man chmod. Вас попросили сделать файл читаемым, записываемым и исполняемым его владельцем, и читаемым и записываемым для его группы и других. Вы видите владельца и группу файла путем выполнения ls -ld file ( -d только необходимо, если это - каталог; без того флага, ls показывает содержание каталога, а не самого каталога), или если Вы хотите менее несоответствующую информацию, использовать stat:

stat -c '%U %G' file

-c средства управляют выводом. %U = владелец файла, %G = группа. file должен быть заменен путем к файлу, метаданные которого Вы хотите исследовать. Если это находится в текущем каталоге, его имя достаточно, но можно дать путь для файлов в другом месте:

$ stat -c '%U %G' /var/log/syslog
syslog adm

stat команда может также показать полномочия файла в восьмеричном и в "человекочитаемой" форме:

stat -c '%n %a %A' *

(Я использовал %n отобразить имена файлов, и * работать stat на каждом нескрытом файле в текущем каталоге.)

Это обеспечивает очень полезную ссылку, если Вы когда-нибудь забываете, каким битам полномочий конкретное восьмеричное число представляет chmod, хотя ответ vidarlo обеспечивает хороший способ вспомнить их.

Я настоятельно рекомендую исследовать полномочия любого файла, о котором Вы заботитесь о том, перед изменением их так как у Вас не будет способа "сбросить" исходный режим кроме установки его вручную.

Другие ответы объяснили, как установить режим файла, в котором Вы нуждаетесь в восьмеричной нотации. chmod принимает режим файла в символьной нотации, а также восьмеричный, и это полезно, когда Вы только хотите изменить один бит полномочий (одна буква в этом rwxr-xr-x строка). Ответ Утки Perl объясняет, как сделать это для установки режима, который Вы хотите.

Когда я создаю сценарий, и я хочу сделать его исполняемым файлом, который является главной причиной, которую я использую chmod, Я использую символьную нотацию для предоставления меня, выполняют разрешение и не вносят никакие другие изменения, с этой командой:

chmod u+x file

Если бы сценарий должен быть исполняемым файлом всеми пользователями, я выполнил бы это без u:

chmod +x file

Это, вероятно, было бы достаточно в Вашей текущей ситуации, так как файлы часто создаются по умолчанию с полномочиями, которые позволяют читать и писать владельцем и только читаемый для группы и других, но также вероятно, что они создаются с разрешением записи для группы. Это зависит от umask установка пользователя имеет, когда они создают файл. Давайте создадим файл и давайте смотреть на него!

$ touch somefile
$ stat -c '%a %A' somefile 
664 -rw-rw-r--

Хорошо. Таким образом получить режим 755 Я должен удалить w бит от g раздел, и добавляет x бит везде.

В символьной нотации я могу сделать тот этот путь:

$ chmod +x,g-w somefile 
$ stat -c '%a %A' somefile 
755 -rwxr-xr-x

Другой способ записать +x в chmod a+x. a обозначает все, который принят, если никакая буква не дана. Важный для замечания: u поддерживает пользователя, что означает владельца, в то время как o поддерживает других (не владелец).

Можно также установить все биты для a u g или o с = знак. Вот я играющий вокруг с бесполезными настройками разрешения:

$ chmod =x somefile 
$ stat -c '%a %A' somefile 
111 ---x--x--x
$ chmod u=r,g=rwx,o= somefile 
$ stat -c '%a %A' somefile 
470 -r--rwx---

Можно использовать и восьмеричную и символьную нотацию для добавления специальных битов как setuid (это позволяет запускать программу как ее владельца, так опасно), и setgid (это заставляет файлы, созданные в каталоге с setgid впоследствии наследовать владение группы каталога, которое полезно, потому что это позволяет Вам управлять полномочиями для группы пользователей в определенном месте файловой системы, не имея необходимость постоянно играть с ним).

Некоторые люди как восьмеричная нотация, некоторым нравится символьный. Последний является немного более гибким и возможно немного более обладающим интуицией для некоторых. Я рекомендую тестировать и изучить обоих (безопасно!), таким образом, Вы сможете выяснить что любой chmod команда сделает, когда Вы будете видеть его и будете решать любую проблему домашней работы о нем с талантом :)

TL; DR

  • Будьте осторожны с chmod. Не использовать sudo chmod если Вы не знаете то, что Вы делаете. Думайте тщательно перед использованием -R флаг.
  • Посмотрите на существующие полномочия сначала. stat Ваш друг
  • Изучите и символьную и восьмеричную нотацию.
6
ответ дан 23 November 2019 в 06:07

Синтаксис для chmod команда:

chmod [options] {permissions} file-name

Прежде, чем установить полномочия файла/папки необходимо быть в Parent Directory из файла/папки.

 r(read) - 4 
 w(write) - 2
 x(execute) - 1

Теперь, анализируя набор от Вашей работы: (-rwxr-xr-x)

Разделите его на четыре части как:

1. - File Type

2. rwx User

3. r-x Group

4. r-x Others

Таким образом, Наконец для предоставления разрешения файлу:

2. rwx: 4+2+1 = 7

3. r-x: 4+0+1 = 5

4. r-x: 4+0+1 = 5

Следовательно, команда

  chmod 755 *filename*
4
ответ дан 23 November 2019 в 06:07

Я нахожу самым легким думать в восьмеричных полномочиях:

  • 1 равняется, выполняются
  • 2 равняется записи
  • 4 равняется чтению

Это может легко быть замечено настраивающее это поразрядно:

r w x
0 0 1 #Execute = 1
0 1 0 #Write = 2
1 0 0 #Read = 4
1 0 1 #Read + Execute = 5
1 1 0 #Read + Write = 6
1 1 1 #All permissions = 7

Они могут быть добавлены. Читайте и выполнитесь, 4+1=5. Читайте, выполнитесь и запишите, 7 (4+2+1), только для записи 2, и т.д.

Существует три цифры к полномочиям: Пользователь, Группа и Другой. rwx для пользователя становится 7 (полные полномочия) для первой цифры. r-x для группы становится 1+4=5, и r-x для другого становится 5. Таким образом это равняется полномочиям 755.

4
ответ дан 23 November 2019 в 06:07

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

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