Как проверить при выполнении как корень? Не просьба о sudo

Я - новый пользователь Ubuntu и все еще привыкаю к ОС. Я использовал его, прежде всего, для локального тестирования сайта, который я разрабатываю. Я загрузил стек LAMP для этого.

Когда я сначала загрузил Ubuntu, каждый раз, когда я отредактировал файлы, я разрабатывал, я должен был войти sudo nano filename. Это не было похоже на это для файлов в моем корневом каталоге, только для файлов, где я тестировал.

Когда я вошел в систему сегодня, я не должен был входить sudo, Я смог просто войти nano filename и отредактируйте файлы. Я не уверен, отключил ли я так или иначе потребность в a sudo пароль, который я не хотел бы делать.

Я работал grep root /etc/passwd затем grep root /etc/shadow который запрещенный доступа без ввода sudo. Когда я сделал, root:! показал. Из того, что я читал, это означает, что учетная запись отключена.

Я не знаю, означает ли это, что я отключил пароль или если учетная запись заблокирована, и все в порядке.

Есть ли способ удостовериться, что я не работаю как корень и если я в настоящее время - то, как отключить его так, я работаю только как администратор.

Кроме того, почему сделал sudo пароль внезапно прекращает должным быть быть введенным для редактирования моих файлов?

Спасибо за Ваши ответы, если мой вопрос неясен, сообщенный мне так, чтобы я мог попытаться разъясниться.

6
задан 20 November 2015 в 03:07

4 ответа

При использовании удара (значение по умолчанию), подсказка скажет Вам, если Вы будете действовать как корень. Если это заканчивается в' $', Вы работаете как обычный пользователь. Если это заканчивается в' #', Вы работаете как корень.

Кроме того,

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 для получения дополнительной информации о полномочиях файла.

10
ответ дан 23 November 2019 в 07:18

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

Например, выполните следующие команды

cd $HOME
touch test.txt
nano test.txt

Вышеуказанные команды перешли в ваш домашний каталог (личный кабинет), создали файл с именем test.txt, а затем вошли в файл с помощью редактора с именем nano.

Теперь, если вы попробуете:

nano /etc/apt/sources.list

Вы сможете увидеть файл, но получите предупреждение о том, что вы не можете редактировать файл.

enter image description here Это потому, что, хотя файл не принадлежит вам, файл имеет доступ на чтение для всех. Это может быть показано на рисунке ниже:

enter image description here

Чтобы легко просматривать разрешения в Ubuntu, просто введите:

ll /path/to/parent/directory

или, в качестве альтернативы, для других систем, таких как debian

ls -al /path/to/directory

Существует множество отличных онлайновых руководств по чтению о правах пользователя, , таких как , которые я рекомендую прочитать. Я часто вижу, как люди делают глупости, например, устанавливают все в / var / www на 777, чтобы заставить их веб-сервер «работать», потому что они не понимают разрешений linux и, следовательно, их серверы менее защищены.

Я новый пользователь Ubuntu ...

Удачи и добро пожаловать в Linux! Распространите слово.

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

Показать Вам подробно, "которые Вы", можно использовать команду 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 кто имеет полный read, wобряд и exполномочия ecute.
  • Но я - член wireshark группа, поэтому мне установили полномочия для группы файла: Я могу read файл и execute это, но не изменяют его (нет wдоступ обряда).
  • Другие могли только read файл, но ни один wобряд к нему, ни execute это.

Это поможет Вам определить Вас полномочия на различных системных файлах.

3
ответ дан 23 November 2019 в 07:18

В большинстве оболочек это возможно

if [ $USER = root ] ; then echo Im root; fi

Bash также поддерживает это

if [ $UID = 0 ] ; then echo Im root; fi
1
ответ дан 23 November 2019 в 07:18

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

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