Я - новый пользователь Ubuntu и все еще привыкаю к ОС. Я использовал его, прежде всего, для локального тестирования сайта, который я разрабатываю. Я загрузил стек LAMP для этого.
Когда я сначала загрузил Ubuntu, каждый раз, когда я отредактировал файлы, я разрабатывал, я должен был войти sudo nano filename
. Это не было похоже на это для файлов в моем корневом каталоге, только для файлов, где я тестировал.
Когда я вошел в систему сегодня, я не должен был входить sudo
, Я смог просто войти nano filename
и отредактируйте файлы. Я не уверен, отключил ли я так или иначе потребность в a sudo
пароль, который я не хотел бы делать.
Я работал grep root /etc/passwd
затем grep root /etc/shadow
который запрещенный доступа без ввода sudo
. Когда я сделал, root:!
показал. Из того, что я читал, это означает, что учетная запись отключена.
Я не знаю, означает ли это, что я отключил пароль или если учетная запись заблокирована, и все в порядке.
Есть ли способ удостовериться, что я не работаю как корень и если я в настоящее время - то, как отключить его так, я работаю только как администратор.
Кроме того, почему сделал sudo
пароль внезапно прекращает должным быть быть введенным для редактирования моих файлов?
Спасибо за Ваши ответы, если мой вопрос неясен, сообщенный мне так, чтобы я мог попытаться разъясниться.
При использовании удара (значение по умолчанию), подсказка скажет Вам, если Вы будете действовать как корень. Если это заканчивается в' $
', Вы работаете как обычный пользователь. Если это заканчивается в' #
', Вы работаете как корень.
Кроме того,
whoami
покажет, кто Вы.
, Если можно внезапно отредактировать файлы, которые раньше требовали sudo доступа, мое первое подозрение будет то, что Вам так или иначе удалось изменить полномочия на файле. Если Вы вводите:
ls -l <filename>
и исследуют результаты, выставочные полномочия разделов rwx.
-rw-rw-r-- 1 user user 77338 Oct 21 17:59 filename.odt
|\ /\ /\ /
| | | +-- permissions for "other": every user on the system.
| | +----- permissions for "group"
| +-------- permissions for "owner"
+---------- filetype (- is regular file)
, Если Вы принадлежите группе, которая имеет полномочия записи или если "другой" имеет полномочия записи тогда, Вам не нужен sudo доступ для записи в файл.
можно читать введение в полномочия Linux для получения дополнительной информации о полномочиях файла.
Вам нужно только использовать root для редактирования файлов, принадлежащих root или другим пользователям. Любые файлы, которые вы создаете или владеете, могут быть отредактированы вами без использования root .
Например, выполните следующие команды
cd $HOME
touch test.txt
nano test.txt
Вышеуказанные команды перешли в ваш домашний каталог (личный кабинет), создали файл с именем test.txt, а затем вошли в файл с помощью редактора с именем nano.
Теперь, если вы попробуете:
nano /etc/apt/sources.list
Вы сможете увидеть файл, но получите предупреждение о том, что вы не можете редактировать файл.
Это потому, что, хотя файл не принадлежит вам, файл имеет доступ на чтение для всех. Это может быть показано на рисунке ниже:
Чтобы легко просматривать разрешения в Ubuntu, просто введите:
ll /path/to/parent/directory
или, в качестве альтернативы, для других систем, таких как debian
ls -al /path/to/directory
Существует множество отличных онлайновых руководств по чтению о правах пользователя, , таких как , которые я рекомендую прочитать. Я часто вижу, как люди делают глупости, например, устанавливают все в / var / www на 777, чтобы заставить их веб-сервер «работать», потому что они не понимают разрешений linux и, следовательно, их серверы менее защищены.
Я новый пользователь Ubuntu ...
blockquote>Удачи и добро пожаловать в Linux! Распространите слово.
Показать Вам подробно, "которые Вы", можно использовать команду id
:
$ id
uid=1000(alphawolf) gid=1000(alphawolf) groups=1000(alphawolf),4(adm),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),107(netdev),113(lpadmin),128(sambashare),132(wireshark),2000(humans-bc-aw)
Как Вы видите, в зависимости от своей учетной записи, вывод может стать довольно долгим.
uid=1000(alphawolf)
",gid=1000(alphawolf)
"и имена и идентификаторы всех других групп Ваша учетная запись являются членом. Этот список по умолчанию только содержит основную группу, если Вы - нормальный/ограниченный пользователь и более длинный список, содержащий, по крайней мере, adm
и sudo
если Вы - администраторский пользователь.
groups=1000(alphawolf),4(adm),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),107(netdev),113(lpadmin),128(sambashare),132(wireshark),2000(humans-bc-aw)
Теперь, как мы можем определить наши полномочия на файле с этой информацией?
Мы берем вывод ls -l /path/to/file-or-directory
, как, например:
$ ls -l /usr/bin/dumpcap
-rwxr-xr-- 1 root wireshark 85632 Aug 16 01:43 /usr/bin/dumpcap*
Этот файл является исполняемым файлом, используемым Wireshark для получения сетевых пакетов с поднятыми полномочиями. Я выбрал его из-за другого владельца и полномочий группы.
Давайте посмотрим на важные детали:
Владелец: root
Это - пользователь, владеющий файлом.
Группа: wireshark
Это - группа пользователей, которой присвоен этот файл.
Строка разрешения: -rwxr-xr--
Это - полномочия файла для пользователя, элементов группы и всех других, как описано ниже:
- rwx r-x r--
| \ / \ / \ /
| V V V
| | | \__ Other permissions: [r] 'r'ead access granted
| | | [-] 'w'rite access denied
| | | [-] e'x'ecuting denied
| | \__ Group permissions: [r] 'r'ead access granted
| | [-] 'w'rite access denied
| | [x] e'x'ecuting granted
| \__ Owner permissions: [r] 'r'ead access granted
| [w] 'w'rite access granted
| [x] e'x'ecuting granted
\__ File type: [-] normal file
(alternatives: 'd'irectory, sym'l'ink,
'c'haracter device, 'b'lock device, ...)
Теперь, что могло мой пользователь alphawolf
с id
вывод выше делает с этим файлом?
root
кто имеет полный r
ead, w
обряд и ex
полномочия ecute. wireshark
группа, поэтому мне установили полномочия для группы файла: Я могу r
ead файл и ex
ecute это, но не изменяют его (нет w
доступ обряда). r
ead файл, но ни один w
обряд к нему, ни ex
ecute это.Это поможет Вам определить Вас полномочия на различных системных файлах.
В большинстве оболочек это возможно
if [ $USER = root ] ; then echo Im root; fi
Bash также поддерживает это
if [ $UID = 0 ] ; then echo Im root; fi