голосование
PHP
jQuery
Firebird
BASH
HTML
Ресурсы
GIT
SEO
Oracle
Python
Проголосуйте за категорию!
счётчик
Яндекс.Метрика

Как изменить права у файла при помощи chmod BASH

Довольно часто нужно менять права у файла при помощи chmod. Изменяют права чаще всего для запуска файла или для скрытия файла от посторонних глаз. Команда chmod довольно часто используется.

операторописание
+добавить определенные права
-удалить определенные права
=установить определенные права

# операторы для команды chmod 
+  -  =

# Делает файл "file1" доступным для исполнения всем пользователям. 
chmod +x script1.sh

# запрет на выполнение
chmod -x script1.sh

# любой пользователь сможет запустить "file1" с привилегиями владельца файла.
chmod u+s /f1/f3/file1

# разрешение на чтение
chmod o+r /folder/file

# снятие разрешения чтения файла
chmod o-r /folder/file

#забрать все права
chmod o= /folder/file

# Выдает право на запись/чтение владельцу файла "file1", и право на чтение
# всем остальным (восьмеричное число).
chmod 644 file1

# Выдает право на чтение, запись и исполнение файлов в каталоге,
# дополнительно устанавливает "sticky bit".
# Это означает, что удалять файлы в этом каталоге могут только владельцы файлов,
chmod 1777 directory-name

С ключом -R команда chmod будет рекурсивно накидывать всем файлам права 777 на выполнение. Даже если в папке folder одна тысяча файлов, то все они будут иметь права 777 или rwx.


# широкие полномочия
chmod -R +777 ./folder
chmod -R +777 ./folder

# аналогичная запись
chmod -R +rwx ./folder
chmod -R -rwx ./folder

Вы можете проверить свои права. Предлагаю простенький скрипт.


# Еще один способ отличить root-а от не root-а:
ROOTUSER_NAME=root

username=`id -nu` # Или... username=`whoami`
if [ "$username" = "$ROOTUSER_NAME" ]
then 
  echo "Рутти-тутти. - root!"
else 
  echo "Вы - лишь обычный юзер."
fi

Таблица с правилами владельца

значениеописание
uвладелец
gгруппа
oпрочие пользователи
aвсе пользователи (или ugo)

Таблица атрибутами

значениеописание
rатрибут чтения. разрешает читать файл
wатрибут записи, разрешает редактировать, удалять, переименовывать или добавлять файлы
xатрибут выполнения, позволяющий запускать на выполнение
ssuid - атрибут, позволяющий любому пользователю запустить файл на выполнение с правами его владельца sudo

Символьное представление выглядит примерно так: r:w:x|r:w:x|r:w:x. Я специально поставил разделитель |, чтобы показать три блока.

Числовое представление выглядит примерно так: 4:2:1|4:2:1|4:2:1.

Владельцы: u | g | o | a. Например, chmod u=rwx,g=rx,o=rx filename.txt - эта команда установит права «rwxr-xr-x» (755) для файла filename.txt

chmod 0777 filename.txt - эта команда разрешает всем все действия (чтение, запись, выполнение) с файлом.

Воспользуйтесь выводом команды ls -l. В одном из столбцов будет символьное представление прав файла.

значениеописание
0---
1--x
2-w-
3-wx
4r--
5r-x
6rw-
7rwx

Например, -rw-rw-rw равносильно chmod 666 file.txt. Предлагаю вам простой способ для накидывания прав. Запомнить все таблицы сложно и не нужно. Вы добавляете большие права файлу chmod 777 file.txt и потом лишаете его некоторых прав. Допустим файлы нельзя выполнять chmod o-x file.txt. Прочие пользователи (не root) не смогут запускать файл, но смогут читать и записывать информацию в файл.

просмотры: 233, уровень: лёгкий уровень, рейтинг: 0, дата: 2017-05-11 12:32:41
проголосовать:

Комментарии:






поиск
реклама
банеры
домен RU всего за 99 рублей
http://www.2domains.ru домен RU домен RU всего за 99 рублей
http://ping-admin.ru/index_5659.html мониторинг сайтов сервис мониторинга работы сайта, мониторим HTTP, HTTPS, FTP, MYSQL, PostgreSQL, POP3, SMTP, IMAP
https://my.colobridge.net/aff.php?aff=047 серверы vps/vds облачный vps/vds сервер colobridge от 9,9 евро в месяц