описание групп в Linux

Группы в LINUX

Чаще всего на рабочих станциях и домашних компьютерах добавляют не-root пользователей в ниже указанные группы, чтобы дать доступ к оборудованию или функциям системного администрирования:

  • audio
  • floppy
  • lp
  • network
  • optical
  • power
  • storage
  • video
  • wheel
Список групп и их функции (отсортированно по алфавиту)
Группа Affected files Назначение
adm
/var/log/*
доступ на чтение к log файлам.
audio
/dev/audio

,

/dev/snd/*

,

/dev/rtc0
Доступ к звуковому оборудованию.
avahi
bin
/usr/bin/*
Right to modify binaries only by root, but right to read or executed by anyone. (Please modify this for better understanding…)
camera доступ к цифровым камерам Digital Cameras.
clamav
/var/lib/clamav/*

,

/var/log/clamav/*
И Clam AntiVirus.
daemon
dbus
/var/run/dbus/*
disk
/dev/sda[1-9]

,

/dev/sdb[1-9]
Access to block devices not affected by other groups such as optical, floppy, and storage.
floppy
/dev/fd[0-9]
Access to floppy drives.
ftp
/srv/ftp
games
/var/games
Access to some game software.
gdm
hal
/var/run/hald

,

/var/cache/hald
http
kmem
/dev/port

,

/dev/mem

,

/dev/kmem
locate
/usr/bin/locate

,

/var/lib/locate

,

/var/lib/mlocate

,

/var/lib/slocate
Right to use
updatedb

command.

log
/var/log/*
Access to log files in
/var/log

,

lp
/etc/cups

,

/var/log/cups

,

/var/cache/cups

,

/var/spool/cups
Access to printer hardware; enables the user to manage print jobs.
mem
mail
/usr/bin/mail
network Right to change network settings such as when using NetworkManager.
networkmanager Requirement for your user to connect wirelessly with NetworkManager. This group is not included with Arch by default so it must be added manually.
nobody Unprivileged group.
ntp
optical
/dev/sr[0-9]

,

/dev/sg[0-9]
Access to optical devices such as CD and DVD drives.
policykit
power Right to use suspend utilities and power management controls.
rfkill
root
/*
Complete system administration and control (root, admin).
scanner
/var/lock/sane
Access to scanner hardware.
smmsp
sendmail

group

storage Access to removable drives such as USB hard drives, flash/jump drives, MP3 players; enables the user to mount storage devices through HAL and D-Bus.
stb-admin
sys Right to admin printers in CUPS.
thinkpad
/dev/misc/nvram
Used by ThinkPad users for access to tools such as tpb.
tty
/dev/tty

,

/dev/vcc

,

/dev/vc

,

/dev/ptmx
Eg. to acces /dev/ACMx
users Standard users group.
uucp
/dev/ttyS[0-9]

,

/dev/tts/[0-9]
Serial and USB devices such as modems, handhelds, RS-232/serial ports.
vboxusers
/dev/vboxdrv
Right to use VirtualBox software.
video
/dev/fb/0

,

/dev/misc/agpgart
Access to video capture devices, DRI/3D hardware acceleration (X can be used without belonging to this group).
vmware Right to use VMware software.
wheel Right to use sudo (setup with
visudo

), also affected by PAM.

При подготовке использован материал с сайта Archlinux.org

делегирование прав sudo другому пользователю

нужно чтобы пользователь мог зайти на Linux в SSH или с консоли напрямую и выполнить какую-то команду, требующую прав root

ну не давать ему же пароль от root!

Можно включить его в группу admin, но и это лишнее количество передаваемых прав. Так он дел натворит! Можно дать ему доступ к sudo на конкретные команды или (и) переменные среды конкретного пользователя. Этому и посвящена эта запись.

Идея в том, что будет один пользователь и он сможет выполнять определенные команды от sudo не имея root прав. Но можно сделать это и нескольким пользователям.

Общий вид команд этого файла:

[пользователь] [хост]=([кем может стать]) [что может сделать]

#TVS
#%tvs-ssh-system-views TVS-Laptop = NOPASSWD: /home/tvs/scripting/test.sh  # этот вариант с правами на выполнение скрипта группе не работает. Нужно указывать каждому пользователю.

запуск файла редактирования и делегирования прав sudo

sudo visudo

настройка делегирования прав sudo

vova TVS-Laptop = NOPASSWD: /home/tvs/scripting/test.sh

tvs TVS-Laptop = NOPASSWD: /home/tvs/scripting/test.sh

чтобы указанная в visudo команда работала нужно сделать

1) chmod 771 имя_файла.sh
2) запускать имя файла.sh без source имя_файла.sh
т.е.
запуск скрипта от sudo
sudo имя_файла.sh

Также здесь, в настройках, указывается какие пользователи могут выполнять команды от sudo

# User privilege specification
root ALL=(ALL:ALL) ALL

Defaults env_reset #команда сбрасывает все переменные среды. Если нужен доступ к каким-то переменным среды, то их нужно указать здесь.

Defaults:%admin !env_reset # не сбрасывать переменные среды для группы admin
которая будет сохранять переменные окружения для всех пользователей группы admin, или:
Defaults:tvs env_keep=my_var1 #сохранить для пользователя tvs переменную var1
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL  #членам группы admin дать все права root

# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL  #членам группы sudo дать разрешение выполнять любые команды

команды проверки конфигурации sudo

sudo -l

пример результатов работы этой команды:

sudo -ll # показать полные данные по правам sudo для текущего пользователя

пример результатов работы этой команды:

sudo -lU user_name

пример результатов работы этой команды:
редактирование файла настроек sudo напрямую

 

запуск нескольких команд через SSH

иногда нужно подключиться к Linux серверу и что-то выполнить, затем выйти. Например посмотреть квоты пользователей или нагрузку на процессор, но при этом не нужно, чтобы юзер что-то еще делал. Для этого могут служить следующие параметры SSH подключения:


$ ssh root@192.168.1.1 'uptime; df -h'

Узнать Memory Usage и Load Average

$ ssh root@192.168.1.1 ‘free -m | cat /proc/loadavg’

Показать Версию Ядра, информацию о CPU и кол-во RAM


$ ssh root@192.168.1.1 << EOF
uname -a
grep "model name" /proc/cpuinfo
grep MemTotal /proc/meminfo
EOF

Выполнение Локального Скрипта на Удаленном Linux Сервере

 bash -s # говорит BASH при запуске, чтобы тот считывал данные со стандартного ввода (перенаправление или конвеер). 

$ ssh [user]@[server] ‘bash -s’ < [local_script]

Запустить Локальный Скрипт ‘local_script.sh’ на Удаленной Машине

$ ssh root@192.168.1.1 ‘bash -s’ < local_script.sh

Источник данных

как в PuTTY скопировать текст в буфер обмена?

Чтобы скопировать в буфер обмена текст с экрана PuTTY достаточно его просто выделить и он скопируется в буфер обмена автоматически.

SSH выдает ошибку Too many authentication failures for

Too many authentication failures for ошибка "лечится" так:

Это вызвано тем, что SSH перебирает множество ключей к серверу. Вы можете увидеть, что сервер говорит здесь:

"Слишком много ошибок аутентификации для [имя пользователя]" 

в этом случае можно в домашней папке Linux удалить папку .SSH она является скрытой. В ней содержатся ключи к серверу. Это позволит заново зарегистрировать ключи ssh сервера и войти на него.

2й вариант:

отредактировать файл ~/.ssh/config

добавив туда строчку (или изменив на yes ее параметр) 

&lt;code style=&quot;margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; font-family: Consolas, Menlo, Monaco, &#39;Lucida Console&#39;, &#39;Liberation Mono&#39;, &#39;DejaVu Sans Mono&#39;, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, monospace, serif;&quot;&gt;IdentitiesOnly yes&lt;/code&gt;

вот пример:
&lt;code style=&quot;margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; font-family: Consolas, Menlo, Monaco, &#39;Lucida Console&#39;, &#39;Liberation Mono&#39;, &#39;DejaVu Sans Mono&#39;, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, monospace, serif;&quot;&gt;Host www.somehost.com
  IdentityFile ~/.ssh/key_for_somehost_rsa
  IdentitiesOnly yes
  Port 22&lt;/code&gt;

что такое TX и RX в настойках сетевых карт, мониторинге трафика

T — Tranceive (отправка)

R — Receive (получение)

Connection refused что это?

Connection refused — сообщает компьютер к которому подключаешься.

Это значит, что компьютер к которому обращаешься (например по ssh) есть, но не дает доступа на указанный порт.

SSH доступ к компьютеру под Linux

ssh -p 8822 user@servername

882 — это порт SSH. Стандартно это порт 22. Его указывать не нужно.

user — имя пользователя. Его нужно указывать т.к. в другом случае имя будет взято от текущего пользователя Linux компьютера.