Я добавил файл в /etc/init.d
но заметил, что файл не зеленого цвета, как другие файлы, когда я ls -l
Что мне сделать, чтобы он стал «зеленым» или добавить необходимые права доступа к файлам?
Почему файлы вообще зеленые?
Зеленый цвет, о котором вы говорите, субъективен для человека, который собрал ваш дистрибутив Linux, и не имеет фиксированного значения в мире Linux. Однако при обычном использовании он обычно связан с исполняемыми файлами. В комментарии выше Игнасио просил вас посмотреть глубже. Пример:
# ls -l
-rwxr-xr-x. 1 root root 1729 Dec 8 06:10 acpid
Что ты видишь? Если вы посмотрите на левую сторону, там есть три набора разрешений. В этом случае пользователь root может выполнять, читать и писать, члены корневой группы могут читать и выполнять, а все остальные могут читать и выполнять. Первое тире слева предназначено для специальных разрешений, каталогов и символических ссылок.
Так как же это изменить? Есть два основных способа, каждый из которых включает команду chmod (режим изменения). Вы можете chmod u + x file, чтобы позволить владельцу выполнять разрешения для файла, или вы можете сделать chmod a + x, чтобы разрешить всем, включая владельца и группу, разрешения на выполнение, или вы можете выполнить chmod 550, чтобы дать владельцу и группе прочитать и выполнить разрешения.
В Википедии есть отличный статья обсуждение chmod в целом вместе с основными правами доступа к файлам.
Все, что вам нужно сделать, это запустить следующую команду от имени пользователя root.
chmod 755 /etc/init.d/yourscript
Теперь, если вы действительно хотите узнать, почему это работает, продолжайте читать.
Разрешения очень легко понять, если кто-то вам их объяснит. Все файлы и каталоги имеют 3 типа разрешений и 3 разные группы людей, которые могут иметь разные разрешения.
Все пользователи могут иметь следующие права доступа к файлам и каталогам:
Эти права даны 3 группам людей:
В системе Linux, когда вы выполняете ls -l в /etc/init.d, вы получаете такие результаты, как:
$ ls -l /etc/init.d/
-rwxr-xr-x 1 root root 2787 05.11.2009 08:03 umountfs
-rwxr-xr-x 1 root root 2075 14.10.2009 00:16 umountnfs.sh
Первая часть (-rwxr-xr-x) перечисляет разрешения, третья показывает владельца (root), а четвертая показывает группу (root).
Список разрешений разделен на четыре части. Первая буква - это тип файла. Если это файл, это прочерк. Если это каталог, это d. Если это ссылка, это буква l. Следующие три буквы обозначают права владельца. rwx означает, что пользователь может читать, писать и выполнять. Следующие три буквы обозначают разрешения группы. Группа в этом случае может только читать выполнение (r-x). W заменяется тире, что означает, что это запрещено. Наконец, всем, кто не принадлежит к группе, даются разрешения на чтение и выполнение (r-x).
Теперь, когда мы рассмотрели определение разрешений, мы можем их изменить.
chmod - это инструмент для изменения разрешений. Хорошим примером его использования является тот, который я привел в начале этого ответа.
chmod 755 /etc/init.d/yourscript
Первый аргумент (755) дает разрешения, а следующие аргументы - это список файлов для изменения.
Список 755 разрешений - это короткий способ сказать -rwxr-xr-x. Первое число - это разрешение для владельца, второе - разрешение для группы. и третий - разрешение для других. Каждое число представляет собой rwx.
Номера разрешений:
Сумма номеров разрешений используется в команде chmod. Итак, 7 - это все права (4 + 2 + 1), а 5 - чтение и выполнение (4 + 1).
Итак, сложив все вместе 755 - это
chown - это инструмент для смены владельцев и групп. Это намного проще, чем chmod.
chown root.root /etc/init.d/yourscript
Первый аргумент - это user.group. Следующие аргументы - это файлы, которые нужно изменить. Это так просто.
chown root.root /etc/init.d/file
chmod 755 /etc/init.d/file