Відповіді:
Основні дві можливості командного рядка:
su
та введіть кореневий пароль, коли буде запропоновано.sudo
перед командою та введіть свій пароль, коли буде запропоновано.Це кращий метод для більшості систем, включаючи Ubuntu, Linux Mint, (можливо, Debian) та інші. Якщо ви не знаєте окремого кореневого пароля, використовуйте цей метод.
Судо вимагає ввести власний пароль. (Мета - обмежити пошкодження, якщо ви залишаєте клавіатуру без нагляду та розблокованої, а також переконатися, що ви дійсно бажаєте запустити цю команду, і це не було, наприклад, помилка друку.) Часто налаштовується так, щоб не запитувати знову кілька хвилин, щоб ви могли виконувати кілька sudo
команд поспіль.
Приклад:
sudo service apache restart
Якщо вам потрібно виконати кілька команд як корінь, префікс кожної з них sudo
. Іноді зручніше запускати інтерактивну оболонку як root. Ви можете використовувати sudo -i
для цього:
$ sudo -i
# command 1
# command 2
...
# exit
Замість цього sudo -i
можна використовувати sudo -s
. Різниця полягає в тому, що -i
повторно і нідеалізує середовище для збереження значень за замовчуванням, тоді як -s
використовує файли конфігурації для кращого або гіршого.
Для отримання додаткової інформації див веб-сайт sudo або введіть man sudo
у вашій системі. Судо дуже настроюється; наприклад, він може бути налаштований так, щоб певний користувач виконував лише певні команди як root. Прочитайте сторінку sudoers
чоловіка для отримання додаткової інформації; використовувати sudo visudo
для редагування файлу sudoers.
su
Команда існує на більшості Unix-подібних систем. Це дозволяє запускати команду як інший користувач, якщо ви знаєте пароль цього користувача. Якщо запустити без вказаного користувачем, su
за замовчуванням для кореневого облікового запису.
Приклад:
su -c 'service apache restart'
Команда для запуску повинна бути передана за допомогою -c
параметра. Зауважте, що вам потрібні лапки, щоб команда не розбиралася вашою оболонкою, а передавалася недоторканою до кореневої оболонки, яка su
працює.
Для запуску декількох команд як root, зручніше запустити інтерактивну оболонку.
$ su
# command 1
# command 2
...
# exit
У деяких системах вам потрібно бути у групі № 0 (викликається wheel
), щоб використовувати їх su
. (Справа в тому, щоб обмежити шкоду, якщо випадковий пароль комусь випадково просочився.)
Якщо встановлено пароль кореневого пароля, і він у вас є, ви можете просто ввести root
рядок входу та ввести кореневий пароль. Будьте дуже обережні і уникайте запуску складних програм як root, оскільки вони можуть робити те, чого ви не збиралися. Увійти безпосередньо як кореневий, в основному корисний у надзвичайних ситуаціях, таких як помилки диска або коли ви закрили себе з облікового запису.
Одиночний користувальницький режим або 1-й рівень запуску також надає root права. Це призначене насамперед для аварійних ситуацій технічного обслуговування, коли завантаження на багатокористувацький рівень роботи неможливе. Ви можете завантажитися в єдиний користувальницький режим, перейшовши single
або emergency
в командному рядку ядра. Зауважте, що завантаження в однокористувацький режим - це не те саме, що звичайно завантажувати систему та входити як root. Скоріше, система запускатиме лише ті сервіси, які визначені для рівня 1 запуску. Як правило, це найменша кількість послуг, необхідних для використання корисної системи.
Ви також можете отримати в одного користувача режим за допомогою команди telinit: telinit 1
; однак ця команда вимагає, щоб ви вже отримали привілеї root за допомогою іншого методу для запуску.
У багатьох системах завантаження в єдиний користувальницький режим надасть користувачеві доступ до кореневої оболонки без запиту пароля. Зокрема, systemd
системи , що базуються, запропонують вам ввести пароль, коли ви завантажуєте цей спосіб.
Calife дозволяє запускати команди як інший користувач, ввівши власний пароль, якщо він авторизований. Він схожий на значно більш поширене судо (див. Вище). Calife більш легкий, ніж судо, але також менш конфігураційний.
Op дозволяє запускати команди як інший користувач, включаючи root. Це не повномасштабний інструмент для виконання довільних команд: друкуються з op
подальшим мнемонічні сконфигурированной системним адміністратором , щоб виконати конкретну команду.
Супер дозволяє запускати команди як інший користувач, включаючи root. Команду, мабуть, дозволив системний адміністратор.
Дивіться також Вікіпедію .
Просто вставте потрібну команду за допомогою команди pkexec
. Майте на увазі, що хоча це працює в більшості випадків, воно не працює універсально.
Див. Для man pkexec
отримання додаткової інформації.
kdesu
і kdesudo
є графічними лицьовими частинами до su
та sudo
відповідно. Вони дозволяють запускати програми X Window як root без зайвих проблем. Вони є частиною KDE . Тип
kdesu -c 'command --option argument'
і введіть кореневий пароль або введіть
kdesudo -c 'command --option argument'
і введіть свій пароль (якщо його авторизовано sudo
). Якщо ви встановите прапорець "зберігати пароль" у KdeSu, вам доведеться вводити кореневий пароль лише один раз за сеанс входу.
Ktsuss ("тримайте су простим, дурним") - це графічна версія су.
BeesuBeesu - це графічний передумови команди su, який замінив Gksu в операційних системах на базі Red Hat. Він був розроблений в основному для RHEL та Fedora.
gksu
і gksudo
gksu
і gksudo
є графічними лицьовими частинами до su
та sudo
відповідно. Вони дозволяють запускати програми X Window як root без зайвих проблем. Вони входять до складу Гнома . Тип
gksu command --option argument
і введіть кореневий пароль або введіть
gksudo command --option argument
і введіть свій пароль (якщо його авторизовано sudo
).
gksu
і gksudo
є застарілими. Вони були замінені PolicyKit у GNOME, і багато дистрибутивів (наприклад, Ubuntu) вже не встановлюють їх за замовчуванням. Ви не повинні залежати від того, чи вони будуть доступними або працюють належним чином.
Використовуйте один із методів у "виконанні команди оболонки як кореневий розділ". Вам потрібно буде забезпечити, щоб ні DISPLAY
змінна середовища, ні XAUTHORITY
середовище не були скинуті під час переходу до root. Для цього може знадобитися додаткова конфігурація тих методів, які не входять у рамки цього питання.
Загалом це погана ідея, головним чином тому, що графічні програми будуть читати та записувати конфігураційні файли як корінь, а коли ви намагатиметесь знову використовувати ці програми як звичайний користувач, ці програми не матимуть дозволу читати власні конфігурації.
sudo
він працюватиме лише в тому випадку, якщо (1) встановлено і (2), якщо ваше використання є у файлі sudoers і це дозволило виконувати операцію.
pkexec
в даний час замінює gksu
/ gksudo
в багатьох дистрибутивах.
Використання su
:
$ su -c command
або
$ su
# command
# exit
В будь-якому випадку вам буде запропоновано ввести root
пароль. Для отримання додаткової інформації дивіться сторінку посібника .
Оскільки питання не було специфічним для Linux, ось як ви досягаєте тієї самої мети в Solaris 9+ (або Trusted Solaris 8):
Починаючи з версії 9, Solaris включає в себе набір інструментів, які ласкаво називаються RBAC або Рольовим контролем доступу.
Суть RBAC полягає в тому, що завдяки наданню Авторизацій та прав користувачам та / або ролям або наданню Ролей користувачам, ви можете створювати неймовірно дрібнозернисті моделі для того, хто може запускати те, з чим привілеї.
По суті, ви ідентифікуєте авторизацію в / etc / security / auth_attr, а потім надаєте їх користувачам або ролям в / etc / user_attr.
Ви визначаєте профілі в / etc / security / prof_attr. Потім ви пов'язуєте команди з тими профілями в / etc / security / exec_attr з подальшим призначенням цих профілів користувачам у файлі / etc / user_attr.
Після того, як це буде зроблено, ви фактично запустите pfexec <command>
для виконання команди з привілейованими або авторизованими правами, наданими цьому користувачеві для цієї команди.
Приємна річ у RBAC полягає в тому, що немає додаткових привілеїв, наданих самій команді або користувачеві, лише комбінації user + command. Так що це безпечніше, ніж створення двійкових + або просто використання судо, щоб користувач міг виконати майже все. (Я знаю, що ви можете заблокувати судо, але, на мій досвід, більшість людей це не робить)
Ще одна перевага RBAC полягає в тому, що ви можете створити root на рольовий обліковий запис і призначити цю роль користувачам, які можуть отримати root за допомогою команди 'su' та пароля root. Користувач root також зможе увійти в єдиний користувальницький режим, що є кращим (на мій погляд), ніж модель Linux, де ви можете відключити кореневий пароль passwd -d root
або заблокувати кореневий обліковий запис passwd -l root
, обидва з яких роблять вхід як root досить важко, коли щось піде не так.
У Бен Роквуд є чудова публікація в блозі про RBAC, яку можна прочитати у розділі Використання RBAC на (відкритому) Solaris .
Або ви можете дати деяким командам наддержаву. Я говорю про спеціальні дозволи, в яких команди виконуються з дозволу власника.
Отримайте шлях команди #which <command>
та встановіть для цього шляху SUID або SGID.
PS - біти SUID та SGID слід надавати обережно. Вони можуть зробити вашу систему незахищеною.