Редакция февраль, 2024
Аннотация
apt-get
и её графическая оболочка synaptic позволяют пользователям легко обновлять свои системы и быть в курсе актуальных новостей мира свободных программ.
Содержание
SCDWriter.exe
;
Предупреждение
write.sh
разбивку не меняет во избежание более тяжёлых последствий ошибок.
.disk
, на раздел USB-носителя с файловой системой ext2 или ext3, и по желанию замените в файле конфигурации загрузчика boot.conf
умолчание default=install
на default=install_flash
, чтобы не выбирать его вручную при загрузке.
write.sh
, который входит в состав ISO-образов или может быть найден рядом с ними:
#mount -o loop,ro <файл-образа.iso> /mnt
#cp -a /mnt/write.sh /usr/local/bin
#umount /mnt
# sleep 1; write.sh <файл-образа.iso> /dev/sdX1
где sdX — устройство, соответствующее целевому flash-диску (см. вывод команды lsblk
); при необходимости на указанном разделе, который должен уже существовать, будет создана файловая система ext2.
Примечание
rsync
.
Примечание
Autoboot in 03 sec. PRESS SPACE TO DISABLE IT.
Key pressed. Autoboot canceled. CPU#00: Starting menu. BOOT SETUP Press command letter, or press 'h' to get help :
:d
CPU#00: Drive [2]: SATA - PCI BUS[1]:DEV[3]:FUNC[0], MCST SATA COMBINED Port
[0] - KINGSTON SMS200S3120G
CPU#00: Partition [0]: Linux EXT2;
U:246194e7-0512-4db3-a821-cbcbe3c92c38 L:""
CPU#00: Partition [1]: Linux swap
CPU#00: Partition [3]: Extended
CPU#00: Partition [4]: Unknown file system type
CPU#00: Drive [10]: ATAPI device
:c
CHANGE BOOT PARAMETERS Current Settings: drive_number: '2' drive label: '*' partition_number: '0' file system id: '07bde958-ec62-492e-933c-17334bb02da2' command_string: '' filename: '' initrdfilename: '' autoboot in: '10' To advance to next setting press ENTER. To skip setting press ESC Enter drive number :10
Enter partition number: < Skipped > Enter command string : < Skipped > Enter filename : < Skipped > Enter initrd file name: < Skipped > Enter autoboot value : < Skipped > Current Settings: drive_number: '10' drive label: '' partition_number: '0' file system id: '' command_string: '' filename: '' initrdfilename: '' autoboot in: '10' CPU#00: Search drive and partition by label or uuid succeed
:b
boot#install
CPU#00: Label 'install' found, loading parameters CPU#00: Search drive and partition by label or uuid succeed Trying to load and start image with following parameters: drive_number: '10' drive label: '' partition_number: '0' file system id: '' command_string: 'hardreset fastboot live automatic=method:cdrom' filename: '/alt0/vmlinux.0' initrdfilename: '/alt0/full.cz'
Примечание
Примечание
/var
.
Примечание
Предупреждение
Примечание
Важно
/boot
с файловой системой ext2 (т.е. без extents и журнала).
/home
) или с другими операционными системами. С другой стороны, отформатировать можно любой раздел, который вы хотите «очистить» (удалить все данные).
Примечание
Важно
Примечание
Примечание
Важно
Примечание
Примечание
/
и /home
создаются подтома с именами @ и @home. Это означает, что для монтирования подтомов необходимы определенные параметры вместо корня системы BtrFS по умолчанию:
/
с помощью опции subvol=@;
/home
с помощью параметра монтирования subvol=@home.
Примечание
Примечание
# builder-useradd <имя_пользователя>
и перелогиниться.
/etc/fstab
).
Примечание
Примечание
Примечание
Важно
Примечание
#apt-get update
#apt-get dist-upgrade
#update-kernel
#apt-get clean
#reboot
Примечание
$ su -
или зарегистрировавшись в системе (например, на второй консоли Ctrl+Alt+F2) под именем root. Про режим суперпользователя можно почитать в главе Режим суперпользователя.
Примечание
Примечание
miniterm.py /dev/ttyUSB0 115200
либо по кабелю COM-COM с применением команды cu
из пакета uucp:
cu -l /dev/ttyS0 -s 115200
Далее можно вводить данные, которые вы хотите отправить в порт. Приходящие в порт данные от внешних устройств также будут выводиться.
Примечание
--lf
или --eol LF
).
Autoboot in xx sec, PRESS SPACE TO DISABLE IT
boot.conf
(при его наличии) (метка, указанная как default;). Приоритетом обладает загрузка по параметрам, указанным в файле boot.conf
. В этом случае из энергонезависимой памяти берется только значение номера устройства загрузки.
boot.conf
приниматься в расчет не будет.
boot.conf
(b основного режима или #boot
расширенного), загрузить одну из меток файла boot.conf
.
Примечание
Примечание
Важно
Содержание
/home/<имя пользователя>
. В этой папке по умолчанию хранятся пользовательские файлы (например, аудиозаписи, видеозаписи, документы). Домашняя папка есть у каждого пользователя системы, и по умолчанию содержащиеся в ней файлы недоступны для других пользователей (даже для чтения);
Примечание
Примечание
Примечание
Примечание
Предупреждение
Содержание
acc
.
https://ip-адрес:8080/
.
192.168.0.122
. В таком случае:
https://192.168.0.122:8080/
;
https://192.168.0.122/
.
Примечание
$
ip
addr
inet
:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo 2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000 link/ether 60:eb:69:6c:ef:47 brd ff:ff:ff:ff:ff:ff inet 192.168.0.122/24 brd 192.168.0.255 scope global enp0s3
192.168.0.122
.
Примечание
startx
, предварительно войдя в консоль сервера, используя имя и пароль созданного при установке непривилегированного пользователя.
Предупреждение
Примечание
Примечание
Примечание
Примечание
Содержание
Предупреждение
Примечание
Предупреждение
Важно
Примечание
apt-get dist-upgrade
.
Важно
Содержание
Примечание
Примечание
/etc/net/ifaces/<интерфейс>
. Настройки сети могут изменяться либо в ЦУС в данном модуле, либо напрямую через редактирование файлов /etc/net/ifaces/<интерфейс>
.
/etc/net/ifaces/<интерфейс>
. В этом режиме можно просмотреть настройки сети, например, полученный по DHCP IP-адрес, через графический интерфейс NetworkManager.
/etc/NetworkManager/system-connections
. Этот режим особенно актуален для задач настройки сети на клиенте, когда IP-адрес необходимо получать динамически с помощью DHCP, а DNS-сервер указать явно. Через ЦУС так настроить невозможно, так как при включении DHCP отключаются настройки, которые можно задавать вручную.
/etc/systemd/network/<имя_файла>.network
, /etc/systemd/network/<имя_файла>.netdev
, /etc/systemd/network/<имя_файла>.link
. Данный режим доступен, если установлен пакет systemd-networkd;
Примечание
# systemctl disable --now network && systemctl enable --now systemd-networkd
И, наоборот, при смене с systemd-networkd на Etcnet отключить службу systemd-networkd и включить network:
# systemctl disable --now systemd-networkd && systemctl enable --now network
/proc/net/bonding/bond0
.
Предупреждение
/var/ftp
с необходимыми правами доступа. Владельцем этого каталога является пользователь root, а не псевдопользователь, от имени которого работает vsftpd. Это сделано для обеспечения безопасности FTP-сервера и системы в целом. Группой-владельцем каталога является специальная группа ftpadmin, предназначенная для администраторов FTP-сервера.
Примечание
Примечание
ca-root.pem
). Этот файл можно будет добавить к списку УЦ, используемому клиентским ПО, после чего все сертификаты, подписанные данным УЦ будут приниматься автоматически;
ca-root.csr
). Этот запрос можно подписать сторонним УЦ;
output.pem
) будет загружен в каталог загрузок.
openvpn-server.csr
. Необходимо сохранить этот файл на диске.
openvpn-server.csr
и загрузить запрос:
output.pem
(подписанный сертификат).
output.pem
и нажать кнопку :
ca-root.pem
и нажать кнопку :
$ ip addr
должно появиться новое соединение tun0. При обычных настройках это может выглядеть так:
tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 500 link/none inet 10.8.0.6 peer 10.8.0.5/32 scope global tun0
Примечание
Примечание
Примечание
Примечание
update-kernel
. Данный модуль предоставляет возможность:
Примечание
Примечание
Примечание
Важно
SRPMS *-debuginfo-*Шаблоны указываются по одному в отдельной строке. Символ «*» используется для подстановки любого количества символов.
Примечание
/srv/public/mirror
. Для того чтобы зеркалирование происходило в другую папку, необходимо эту папку примонтировать в папку /srv/public/mirror
. Для этого в файл /etc/fstab
следует вписать строку:
/media/disk/localrepo /srv/public/mirror none rw,bind,auto 0 0где
/media/disk/localrepo
— папка-хранилище локального репозитория.
Примечание
/srv/public/mirror/<репозиторий>/branch/<архитектура>/base/
. нет файлов pkglist.*
значит зеркалирование не закончено (т.е. не все файлы загружены на ваш сервер).
# apt-get install nginx
/etc/nginx/sites-available.d/repo.conf
:
server { listen 80; server_name localhost .local <ваш ip>; access_log /var/log/nginx/repo-access.log; error_log /var/log/nginx/repo-error.log; location /mirror { root /srv/public; autoindex on; } }
/etc/nginx/sites-enabled.d/
:
# ln -s /etc/nginx/sites-available.d/repo.conf /etc/nginx/sites-enabled.d/repo.conf
# systemctl enable --now nginx
#Проверить правильность настройки репозиториев:apt-repo rm all
#apt-repo add http://<ip сервера>/mirror/p10/branch
# apt-repo
rpm http://192.168.0.185/mirror p10/branch/x86_64 classic
rpm http://192.168.0.185/mirror p10/branch/noarch classic
# apt-get install vsftpd lftp
/etc/xinetd.d/vsftpd
:
# default: off # description: The vsftpd FTP server. service ftp { disable = no # включает службу socket_type = stream protocol = tcp wait = no user = root nice = 10 rlimit_as = 200M server = /usr/sbin/vsftpd only_from = 0.0.0.0 # предоставить доступ для всех IP }
# systemctl restart xinetd
/etc/vsftpd/conf
:
local_enable=YES
/var/ftp/mirror
:
# mkdir -p /var/ftp/mirror
Примонтировать каталог /srv/public/mirror
в /var/ftp/mirror
с опцией --bind
:
# mount --bind /srv/public/mirror /var/ftp/mirror
Примечание
/srv/public/mirror
при загрузке системы необходимо добавить следующую строку в файл /etc/fstab
:
/srv/public/mirror /var/ftp/mirror none defaults,bind 0 0
#apt-repo rm all
#apt-repo add ftp://<ip сервера>/mirror/p10/branch
#apt-repo
rpm ftp://192.168.0.185/mirror p10/branch/x86_64 classic rpm ftp://192.168.0.185/mirror p10/branch/noarch classic
Примечание
Примечание
usrquota
, grpquota
. Для этого следует выбрать нужный раздел в списке Файловая система и установить отметку в поле Включено:
Примечание
# apt-get install state-change-notify-postfix
Thu Sep 14 11:46:59 EET 2023: The server.test.alt is about to start.При выключении:
Thu Sep 14 12:27:02 EET 2023: The server.test.alt is about to shutdown.
rpm -qa | grep alterator*
Прочие пакеты для ЦУС можно найти, выполнив команду:
apt-cache search alterator*
#apt-get install alterator-net-openvpn
#apt-get remove alterator-net-openvpn
# systemctl restart ahttpd
Содержание
Предупреждение
Предупреждение
# apt-get install task-samba-dc
# for service in smb nmb krb5kdc slapd bind; do systemctl disable $service; systemctl stop $service; done
#rm -f /etc/samba/smb.conf
#rm -rf /var/lib/samba
#rm -rf /var/cache/samba
#mkdir -p /var/lib/samba/sysvol
Предупреждение
/etc/samba/smb.conf
перед созданием домена: rm -f
/etc/samba/smb.conf
/etc/sysconfig/network
# hostnamectl set-hostname dc1.test.alt
# domainname test.alt
Примечание
Предупреждение
Примечание
# samba-tool domain provision --realm=test.alt --domain=test --adminpass='Pa$$word' --dns-backend=SAMBA_INTERNAL --option="dns forwarder=8.8.8.8" --server-role=dc
где
Примечание
--use-rfc2307
позволяет поддерживать расширенные атрибуты типа UID и GID в схеме LDAP и ACL на файловой системе Linux.
# samba-tool domain provision --realm=test.alt --domain=test --adminpass='Pa$$word' --dns-backend=SAMBA_INTERNAL --option="dns forwarder=8.8.8.8" --option="ad dc functional level = 2016" --server-role=dc --function-level=2016
Примечание
Примечание
# samba-tool domain provision
Realm [TEST.ALT]:
Domain [TEST]:
Server Role (dc, member, standalone) [dc]:
DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]:
DNS forwarder IP address (write 'none' to disable forwarding) [127.0.0.1]: 8.8.8.8
Administrator password:
Retype password:
Looking up IPv4 addresses
More than one IPv4 address found. Using 192.168.0.122
Looking up IPv6 addresses
No IPv6 address will be assigned
Setting up share.ldb
Setting up secrets.ldb
Setting up the registry
Setting up the privileges database
Setting up idmap db
Setting up SAM db
Setting up sam.ldb partitions and settings
Setting up sam.ldb rootDSE
Pre-loading the Samba 4 and AD schema
Adding DomainDN: DC=test,DC=alt
Adding configuration container
Setting up sam.ldb schema
Setting up sam.ldb configuration data
Setting up display specifiers
Modifying display specifiers
Adding users container
Modifying users container
Adding computers container
Modifying computers container
Setting up sam.ldb data
Setting up well known security principals
Setting up sam.ldb users and groups
Setting up self join
Adding DNS accounts
Creating CN=MicrosoftDNS,CN=System,DC=test,DC=alt
Creating DomainDnsZones and ForestDnsZones partitions
Populating DomainDnsZones and ForestDnsZones partitions
Setting up sam.ldb rootDSE marking as synchronized
Fixing provision GUIDs
A Kerberos configuration suitable for Samba 4 has been generated at /var/lib/samba/private/krb5.conf
Merge the contents of this file with your system krb5.conf or replace it with this one. Do not create a symlink!
Once the above files are installed, your Samba4 server will be ready to use
Server Role: active directory domain controller
Hostname: dc1
NetBIOS Domain: TEST
DNS Domain: test.alt
DOMAIN SID: S-1-5-21-80639820-2350372464-3293631772
Примечание
/etc/resolvconf.conf
добавить строку:
name_servers=127.0.0.1Обновить DNS адреса:
# resolvconf -u
# systemctl enable --now samba
/etc/krb5.conf
. Следует раскомментировать строку default_realm и содержимое разделов realms и domain_realm и указать название домена (обратите внимание на регистр символов), в строке dns_lookup_realm должно быть установлено значение false:
includedir /etc/krb5.conf.d/ [logging] # default = FILE:/var/log/krb5libs.log # kdc = FILE:/var/log/krb5kdc.log # admin_server = FILE:/var/log/kadmind.log [libdefaults] dns_lookup_kdc = true dns_lookup_realm = false ticket_lifetime = 24h renew_lifetime = 7d forwardable = true rdns = false default_realm = TEST.ALT # default_ccache_name = KEYRING:persistent:%{uid} [realms] TEST.ALT = { default_domain = test.alt } [domain_realm] dc1 = TEST.ALT
Примечание
krb5.conf
для домена в каталоге /var/lib/samba/private/
. Можно просто заменить этим файлом файл, находящийся в каталоге /etc/
:
# cp /var/lib/samba/private/krb5.conf /etc/krb5.conf
# samba-tool domain info 127.0.0.1
Forest : test.alt
Domain : test.alt
Netbios domain : TEST
DC name : dc1.test.alt
DC netbios name : DC
Server site : Default-First-Site-Name
Client site : Default-First-Site-Name
# smbclient -L localhost -Uadministrator
Password for [TEST\administrator]:
Sharename Type Comment
--------- ---- -------
sysvol Disk
netlogon Disk
IPC$ IPC IPC Service (Samba 4.19.4)
SMB1 disabled -- no workgroup available
Общие ресурсы netlogon и sysvol создаваемые по умолчанию нужны для функционирования сервера AD и создаются в smb.conf
в процессе развертывания/модернизации.
/etc/resolv.conf
:
#cat /etc/resolv.conf
# Generated by resolvconf # Do not edit manually, use # /etc/net/ifaces/<interface>/resolv.conf instead. search test.alt nameserver 127.0.0.1 #host test.alt
test.alt has address 192.168.0.122
#Если имена не находятся, проверьте выключение службы named.host -t SRV _kerberos._udp.test.alt.
_kerberos._udp.test.alt has SRV record 0 100 88 dc1.test.alt. #host -t SRV _ldap._tcp.test.alt.
_ldap._tcp.test.alt has SRV record 0 100 389 dc1.test.alt. #host -t A dc1.test.alt.
dc1.test.alt has address 192.168.0.122
# kinit administrator@TEST.ALT
Password for administrator@TEST.ALT:
Просмотр полученного билета:
# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: administrator@TEST.ALT
Valid starting Expires Service principal
01.03.2024 11:50:39 01.03.2024 21:50:39 krbtgt/TEST.ALT@TEST.ALT
renew until 02.03.2024 11:50:34
ad dc functional level
файла /etc/samba/smb.conf
. Возможные значения: 2008_R2, 2012, 2012_R2, 2016.
# samba-tool domain schemaupgrade --schema=<SCHEMA>
где SCHEMA — схема, до которой необходимо выполнить обновление (по умолчанию 2019).
# samba-tool domain functionalprep --function-level=<FUNCTION_LEVEL>
где FUNCTION_LEVEL — функциональный уровень, к которому нужно подготовиться (по умолчанию 2016).
# samba-tool domain level raise --domain-level=<DOMAIN_LEVEL> --forest-level=<FOREST_LEVEL>
где:
Примечание
ad dc functional level
в файле /etc/samba/smb.conf
вручную, защита от несовпадения функций между контроллерами домена снижается. Поэтому на всех контроллерах домена должна использоваться одна и та же версия Samba, чтобы гарантировать, что поведение, наблюдаемое клиентом, будет одинаковым независимо от того, к какому контроллеру домена осуществляется соединение.
/etc/samba/smb.conf
добавить строку:
ad dc functional level = 2016
# systemctl restart samba.service
# samba-tool domain schemaupgrade --schema=2019
# samba-tool domain functionalprep --function-level=2016
# samba-tool domain level raise --domain-level=2016 --forest-level=2016
Domain function level changed!
Forest function level changed!
All changes applied successfully!
# samba-tool domain level show
Domain and forest function level for domain 'DC=test,DC=alt'
Forest function level: (Windows) 2016
Domain function level: (Windows) 2016
Lowest function level of a DC: (Windows) 2016
samba-tool user create имя пользователя
samba-tool user setexpiry имя пользователя
samba-tool user delete имя пользователя
samba-tool user disable имя пользователя
samba-tool user enable имя пользователя
samba-tool user setpassword имя пользователя
# samba-tool user list
#samba-tool user create ivanov --given-name='Иван Иванов' --mail-address='ivanov@test.alt'
#samba-tool user setexpiry ivanov --noexpiry
Предупреждение
pdbedit -x -m имя
# apt-get install task-samba-dc
# for service in smb nmb krb5kdc slapd bind; do systemctl disable $service; systemctl stop $service; done
#rm -f /etc/samba/smb.conf
#rm -rf /var/lib/samba
#rm -rf /var/cache/samba
#mkdir -p /var/lib/samba/sysvol
# systemctl status bind
И, если она была включена, выключить службу bind и перезапустить службу samba:
#systemctl stop bind
#systemctl restart samba
Предупреждение
# samba-tool dns add 192.168.0.122 test.alt DC2 A 192.168.0.106 -Uadministrator
Password for [TEST\administrator]:
Record added successfully
/etc/krb5.conf
):
[libdefaults] default_realm = TEST.ALT dns_lookup_realm = false dns_lookup_kdc = true
Примечание
/etc/resolv.conf
обязательно должен быть добавлен PDC как nameserver:
#echo "name_servers=192.168.0.122" >> /etc/resolvconf.conf
#echo "search_domains=test.alt" >> /etc/resolvconf.conf
#resolvconf -u
#cat /etc/resolv.conf
search test.alt nameserver 192.168.0.122 nameserver 8.8.8.8
# kinit administrator@TEST.ALT
Password for administrator@TEST.ALT:
Предупреждение
# klist
Ticket cache: KEYRING:persistent:0:0
Default principal: administrator@TEST.ALT
Valid starting Expires Service principal
01.03.2024 12:43:28 01.03.2024 22:43:28 krbtgt/TEST.ALT@TEST.ALT
renew until 08.03.2024 12:43:24
# samba-tool domain join test.alt DC -Uadministrator --realm=test.alt --option="dns forwarder=8.8.8.8"
Если всё нормально, в конце будет выведена информация о присоединении к домену:
Joined domain TEST (SID S-1-5-21-80639820-2350372464-3293631772) as a DCДля получения дополнительной информации можно воспользоваться командой:
# samba-tool domain join --help
# systemctl enable --now samba
Предупреждение
Предупреждение
# samba-tool drs replicate dc2.test.alt dc1.test.alt dc=test,dc=alt -Uadministrator
Сначала указывается приемник, затем источник, после этого реплицируемая ветка в LDAP.
# samba-tool drs replicate dc1.test.alt dc2.test.alt dc=test,dc=alt -Uadministrator
Сначала указывается приемник, затем источник, после этого реплицируемая ветка в LDAP.
Примечание
# samba-tool drs showrepl
Примечание
# apt-get install task-auth-ad-sssd
# hostnamectl set-hostname host-15.test.alt
/etc/net/ifaces/enp0s3/resolv.conf
со следующим содержимым:
nameserver 192.168.0.122где 192.168.0.122 — IP-адрес DNS-сервера домена.
/etc/resolvconf.conf
добавить/отредактировать следующие параметры:
interface_order='lo lo[0-9]* lo.* enp0s3' search_domains=test.altгде enp0s3 — интерфейс на котором доступен контроллер домена, test.alt — домен.
# resolvconf -u
Примечание
/etc/resolv.conf
должны появиться строки:
search test.alt nameserver 192.168.0.122
# system-auth write ad test.alt host-15 test 'administrator' 'Pa$$word'
Joined 'HOST-15' to dns domain 'test.alt'
Важно
# apt-get install admx-basealt admx-chromium admx-firefox admx-yandex-browser admx-msi-setup
# admx-msi-setup
Примечание
admx-msi-setup
устанавливает последнюю версию ADMX от Microsoft (сейчас это Microsoft Group Policy — Windows 10 October 2020 Update (20H2)). С помощью параметров, можно указать другой источник:
# admx-msi-setup -h
admx-msi-setup - download msi files and extract them in <destination-directory> default value is /usr/share/PolicyDefinitions/.
Usage: admx-msi-setup [-d <destination-directory>] [-s <admx-msi-source>]
Removing admx-msi-setup temporary files...
/usr/share/PolicyDefinitions
. Необходимо скопировать локальные ADMX-файлы в сетевой каталог sysvol (/var/lib/samba/sysvol/<DOMAIN>/Policies/
):
# samba-tool gpo admxload -U Administrator
Примечание
# apt-get install alterator-gpupdate
Примечание
# apt-get install admc gpui
Примечание
#apt-get install admx-basealt admx-chromium admx-firefox admx-yandex-browser admx-msi-setup
#admx-msi-setup
\\<DOMAIN>\SYSVOL\<DOMAIN>\Policies\PolicyDefinitions
.
ping
только суперпользователю (root).
$ kinit administrator
Password for administrator@TEST.ALT:
admc
:
$ admc
ping
сможет только администратор:
$ping localhost
bash: ping: команда не найдена $/usr/bin/ping localhost
bash: /usr/bin/ping: Отказано в доступе #control ping
restricted
Важно
# gpoa --loglevel 0
В выводе команды будут фигурировать полученные групповые объекты. В частности, соответствующий уникальный код (GUID) объекта.
smb.conf
Примечание
/etc/samba/smb.conf
, следует запустить команду testparm
для проверки файла на синтаксические ошибки:
# testparm /etc/samba/smb.conf
И, в случае отсутствия ошибок, перезапустить службы smb и nmb, чтобы изменения вступили в силу:
#systemctl restart smb
#systemctl restart nmb
Примечание
# smbpasswd -a <имя_пользователя>
Примечание
# smbpasswd -a user
New SMB password:
Retype new SMB password:
Added user user.
Примечание
Примечание
browseable
для домашних каталогов будет унаследован от глобального флага browseable
, а не флага browseable
раздела [homes]. Таким образом, установка browseable = no в разделе [homes] скроет общий ресурс [homes], но сделает видимыми все автоматические домашние каталоги.
browseable
— определяет, отображается ли этот общий ресурс в списке доступных общих ресурсов в сетевом окружении и в списке просмотра (по умолчанию: browseable = yes);
path
— указывает каталог, к которому должен быть предоставлен доступ;
read only
— если для этого параметра задано значение «yes», то пользователи службы не могут создавать или изменять файлы в каталоге (по умолчанию: read only = yes);
writable
— инвертированный синоним для read only
(по умолчанию: writeable = no);
write list
— список пользователей, которым будет предоставлен доступ для чтения и записи. Если пользователь находится в этом списке, ему будет предоставлен доступ для записи, независимо от того, какой параметр установлен для параметра read only
. Список может включать имена групп с использованием синтаксиса @group;
read list
— список пользователей, которым будет предоставлен доступ только для чтения. Если пользователь находится в этом списке, ему не будет предоставлен доступ для записи, независимо от того, какой параметр установлен для параметра read only
. Список может включать имена групп;
guest ok
— если этот параметр имеет значение «yes», то для подключения к ресурсу не требуется пароль (по умолчанию: guest ok = no);
guest only
— разрешить только гостевые соединения к общему ресурсу (по умолчанию: guest only = no);
printable
— если этот параметр имеет значение «yes», то клиенты могут открывать, писать и ставить задания в очередь печати (по умолчанию: printable = no);
map to guest
— определяет что делать с запросами, которые не удалось аутентифицировать («Never» — запросы с неправильными паролями будут отклонены; «Bad user» — запросы с неправильными паролями будут отклонены, если такое имя пользователя существует;) (по умолчанию: map to guest = Never).
/etc/samba/smb.conf
для работы Samba в режиме файлового сервера с двумя открытыми для общего доступа ресурсами, домашними каталогами пользователей и принтером (закомментированные параметры действуют по умолчанию):
[global] workgroup = WORKGROUP server string = Samba Server Version %v security = user log file = /var/log/samba/log.%m max log size = 50 guest ok = yes cups options = raw map to guest = Bad User ; idmap config * : backend = tdb [homes] comment = Home Directory for '%u' browseable = no writable = yes guest ok = no [share] comment = Commonplace path = /srv/share read only = No [printers] comment = All Printers path = /var/spool/samba browseable = no ; guest ok = no ; writable = no printable = yes # Каталог доступный только для чтения, за исключением пользователей # входящих в группу "staff" [public] comment = Public Stuff path = /home/samba public = yes writable = yes write list = +staff ; browseable = yes [Free] path = /mnt/win/Free read only = no ; browseable = yes guest ok = yes
# smbclient -L 192.168.0.157 -Uuser
Password for [WORKGROUP\user]:
Sharename Type Comment
--------- ---- -------
share Disk Commonplace
public Disk Public Stuff
Free Disk
IPC$ IPC IPC Service (Samba Server Version 4.19.4)
user Disk Home Directory for 'user'
Примечание
man smb.conf
.
/etc/fstab
/etc/samba/sambacreds
(например, командой mcedit /etc/samba/sambacreds
), с содержимым:
username=имя_пользователя password=пароль
/etc/fstab
необходимо прописать:
//server/public /mnt/server_public cifs users,credentials=/etc/samba/sambacreds 0 0
/etc/samba/sambacreds
, надо установить так, чтобы файл был доступен только владельцу:
# chmod 600 /etc/samba/sambacreds
и принадлежать root:
# chown root: /etc/samba/sambacreds
fping
:
# apt-get install postgresql14-server zabbix-server-pgsql fping
# /etc/init.d/postgresql initdb
# systemctl enable --now postgresql
#su - postgres -s /bin/sh -c 'createuser --no-superuser --no-createdb --no-createrole --encrypted --pwprompt zabbix'
#su - postgres -s /bin/sh -c 'createdb -O zabbix zabbix'
#systemctl restart postgresql
#su - postgres -s /bin/sh -c 'psql -U zabbix -f /usr/share/doc/zabbix-common-database-pgsql-*/schema.sql zabbix'
#su - postgres -s /bin/sh -c 'psql -U zabbix -f /usr/share/doc/zabbix-common-database-pgsql-*/images.sql zabbix'
#su - postgres -s /bin/sh -c 'psql -U zabbix -f /usr/share/doc/zabbix-common-database-pgsql-*/data.sql zabbix'
# apt-get install apache2 apache2-mod_php8.2
# systemctl enable --now httpd2
Примечание
php<мажорная>.<минорная версии>-<имя модуля>
# apt-get install php8.2 php8.2-mbstring php8.2-sockets php8.2-gd php8.2-xmlreader php8.2-pgsql php8.2-ldap php8.2-openssl
/etc/php/8.2/apache2-mod_php/php.ini
:
memory_limit = 256M post_max_size = 32M max_execution_time = 600 max_input_time = 600 date.timezone = Europe/Moscow always_populate_raw_post_data = -1
# systemctl restart httpd2
/etc/zabbix/zabbix_server.conf
:
DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=Пароль от базы
# systemctl enable --now zabbix_pgsql
# apt-get install zabbix-phpfrontend-apache2 zabbix-phpfrontend-php8.2
# ln -s /etc/httpd2/conf/addon.d/A.zabbix.conf /etc/httpd2/conf/extra-enabled/
# systemctl restart httpd2
# chown apache2:apache2 /var/www/webapps/zabbix/ui/conf
http://<ip-сервера>/zabbix
Примечание
/etc/httpd2/conf/sites-available/default.conf
в секцию <Directory> добавить запись:
Require all grantedи перезапустить apache2:
# systemctl restart httpd2
Примечание
Логин: Admin Пароль: zabbix
Примечание
# apt-get install zabbix-agent
/etc/zabbix/zabbix_agentd.conf
нужно задать следующие параметры:
Server=<ip-сервера> ServerActive=<ip-сервера> Hostname=comp01.example.testcomp01.example.test — имя узла мониторинга, которое будет указано на сервере Zabbix.
Примечание
# systemctl enable --now zabbix_agentd.service
Примечание
Примечание
/etc/zabbix/zabbix_agentd.conf
) в поле Hostname.
Примечание
Hostname
— уникальное имя;
ServerActive
— IP-адрес сервера;
HostMetadata
— значение, которое было указано в настройках сервера (HostMetadata=alt.autoreg).
#apt-get install deploy
#deploy nextcloud
Примечание
# deploy nextcloud
# deploy nextcloud password=5Z4SAq2U28rWyVz
https://<сервер>/nextcloud/
. Где «сервер» — localhost или имя, заданное компьютеру при установке системы на этапе Настройка сети.
Примечание
$ hostname
Важно
/var/www/webapps/nextcloud/config/config.php
в параметре version
изменить старую версию на новую;
/var/www/webapps/nextcloud/config/config.php
— файл конфигурации Nextcloud.
Важно
# systemctl restart httpd2
'memcache.local' => '\OC\Memcache\Memcached', 'memcache.distributed' => '\OC\Memcache\Memcached', 'memcached_servers' => array( array('localhost', 11211), ),
Примечание
# apt-get install memcached php8.2-memcached
Служба memcached должна быть добавлена в автозагрузку:
# systemctl enable --now memcached
'trusted_domains' => array ( 0 => 'localhost', 1 => 'host-15', 2 => 'nextcloud.test.alt', ),
https://localhost/nextcloud/
или по имени сервера https://nextcloud.test.alt/nextcloud/
.
Примечание
Примечание
# apt-get install urbackup-server
# mkdir -p /mnt/backups/urbackup
Каталог должен принадлежать пользователю urbackup и у этого пользователя должны быть права на чтение/запись:
# chown -R urbackup:urbackup /mnt/backups/urbackup
# systemctl enable --now urbackup-server
Примечание
http://<ip-сервера>:55414
:
Важно
Примечание
# apt-get install urbackup-client
# systemctl enable --now urbackup-client
urbackupclientctl
).
Примечание
current
является ссылкой на последнюю резервную копию. Резервные копии папок с файлами сохраняются в открытом виде. Образы дисковых разделов хранятся в виде файлов в формате vhdz (имя файла будет иметь вид Image_<Drive>_<YYMMDD-HHMM>.vhdz).
urbackupclientctl
:
urbackupclientctl start
— запустить инкрементное/полное резервное копирование;
urbackupclientctl status
— получить текущий статус резервного копирования;
urbackupclientctl browse
— просмотр списка резервных копий и файлов в резервных копиях;
urbackupclientctl restore-start
— восстановить файлы из резервной копии;
urbackupclientctl set-settings
— установить параметры резервного копирования;
urbackupclientctl add-backupdir
— добавить новый каталог в список каталогов, для которых выполняется резервное копирование;
urbackupclientctl list-backupdirs
— вывести список каталогов, для которых выполняется резервное копирование;
urbackupclientctl remove-backupdir
— удалить каталог из списока каталогов, для которых выполняется резервное копирование.
urbackupclientctl <command> --helpНиже приведены примеры использования утилиты
urbackupclientctl
.
$ urbackupclientctl browse
[{
"archived": 0,
"backuptime": 1709304813,
"disable_delete": true,
"id": 3,
"incremental": 0,
"size_bytes": 49182025
}
,{
"archived": 0,
"backuptime": 1709304721,
"id": 2,
"incremental": 0,
"size_bytes": 684214036
}
]
$ urbackupclientctl start -f
Waiting for server to start backup... done
Preparing... -
Completed successfully.
# urbackupclientctl restore-start -b 2
Starting restore. Waiting for backup server... done
[=============================================================> ] 97% 2.33831 GB/2.41119 GB at 76.024 KBit/s
Restore completed successfully.
Содержание
apt-get
. Она автоматически определяет зависимости между пакетами и строго следит за её соблюдением при выполнении любой из следующих операций: установка, удаление или обновление пакетов.
Важно
/etc/apt/sources.list
, либо в любой файл .list
(например, mysources.list
) в каталоге /etc/apt/sources.list.d/
. Описания репозиториев заносятся в эти файлы в следующем виде:
rpm [подпись] метод:путь база название rpm-src [подпись] метод:путь база названиеЗдесь:
/etc/apt/vendor.list
;
sources.list
, необходимо обновить локальную базу данных APT о доступных пакетах. Это делается командой apt-get update
.
sources.list
присутствует репозиторий, содержимое которого может изменяться (например, постоянно разрабатываемый репозиторий или репозиторий обновлений по безопасности), то прежде чем работать с APT, необходимо синхронизировать локальную базу данных с удалённым сервером командой apt-get update
. Локальная база данных создаётся заново при каждом изменении в репозитории: добавлении, удалении или переименовании пакета.
/etc/apt/sources.list
, относящиеся к ресурсам в сети Интернет.
Примечание
Примечание
apt-repo
:
apt-repo
apt-repo add репозиторий
apt-repo rm репозиторий
apt-repo update
apt-repo
:
man apt-repo
или
apt-repo --help
Примечание
#Или то же самое одной командой:apt-repo
#rm all
apt-repo
add p10
# apt-repo set p10
sources.list
репозитория на сменном диске в APT предусмотрена специальная утилита — apt-cdrom
.
Acquire::CDROM::mount
в файле конфигурации APT (/etc/apt/apt.conf
), по умолчанию это /media/ALTLinux
:
# mkdir /media/ALTLinux
# mount /dev/носитель /media/ALTLinux
где /dev/носитель
— соответствующее блочное устройство (например, /dev/dvd
— для CD/DVD-диска).
# apt-cdrom -m add
sources.list
появится запись о подключённом носителе:
rpm cdrom:[ALT for Elbrus 2024-01-19]/ ALTLinux main
Примечание
mount /dev/носитель /media/ALTLinux
необходимо выполнять перед каждой командой apt-get install имя_пакета
.
/etc/apt/sources.list.d/
.
Примечание
alt.list
может содержаться такая информация:
rpm file:/srv/repo e2kv4 classic rpm file:/srv/repo noarch classic
apt-get update
или apt-repo update
).
apt-cache
. Данная утилита позволяет искать пакет не только по имени, но и по его описанию.
apt-cache search подстрока
позволяет найти все пакеты, в именах или описании которых присутствует указанная подстрока. Например:
$ apt-cache search dictionary
stardict-wn - GCIDE - The Collaborative International Dictionary of English
firefox-ru - Russian (RU) Language Pack for Firefox
gnome-dictionary-applet - GNOME panel applet for gnome-dictionary
gnome-utils - Utilities for the GNOME 2.0 desktop
libgdict - GNOME Dictionary Library.
stardict-mueller7 - V.K. Mueller English-Russian Dictionary, 7 Edition: stardict format
stardict-slovnyk_be-en - Dictionary: Slovnyk Belarusian-English
stardict-slovnyk_be-ru - Dictionary: Slovnyk Belarusian-Russian
stardict-slovnyk_be-uk - Dictionary: Slovnyk Belarusian-Ukrainian
stardict-slovnyk_cs-ru - Dictionary: Slovnyk Czech-Russian
stardict-slovnyk_en-be - Dictionary: Slovnyk English-Belarusian
stardict-slovnyk_en-ru - Dictionary: Slovnyk English-Russian
stardict-slovnyk_en-uk - Dictionary: Slovnyk English-Ukrainian
stardict-slovnyk_es-ru - Dictionary: Slovnyk Spanish-Russian
stardict-slovnyk_ru-be - Dictionary: Slovnyk Russian-Belarusian
stardict-slovnyk_ru-cs - Dictionary: Slovnyk Russian-Czech
stardict-slovnyk_ru-en - Dictionary: Slovnyk Russian-English
stardict-slovnyk_ru-es - Dictionary: Slovnyk Russian-Spanish
stardict-slovnyk_ru-uk - Dictionary: Slovnyk Russian-Ukrainian
stardict-slovnyk_uk-be - Dictionary: Slovnyk Ukrainian-Belarusian
stardict-slovnyk_uk-en - Dictionary: Slovnyk Ukrainian-English
stardict-slovnyk_uk-ru - Dictionary: Slovnyk Ukrainian-Russian
words - A dictionary of English words for the /usr/share/dict directory
apt-cache show
:
$ apt-cache show stardict-mueller7
Package: stardict-mueller7
Section: Text tools
Installed Size: 3095255
Maintainer: Anton V. Boyarshinov <boyarsh@altlinux.ru>
Version: 1.0-alt7
Pre-Depends: rpmlib(PayloadIsLzma)
Depends: stardict (>= 2.4.2)
Provides: stardict-mueller7 (= 1.0-alt7)
Architecture: noarch
Size: 3135276
MD5Sum: ea95c67ca323350b454fbc26533c3548
Filename: stardict-mueller7-1.0-alt7.noarch.rpm
Description: V.K. Mueller English-Russian Dictionary, 7 Edition: stardict format
Electronic version of V.K. Mueller English-Russian Dictionary, 7 Edition
in stardict format. You can use it with stardict client.
apt-cache
можно использовать русскую подстроку. В этом случае будут найдены пакеты, имеющие описание на русском языке. К сожалению, описание на русском языке в настоящее время есть не у всех пакетов, но наиболее актуальные описания переведены.
Важно
apt-get install имя_пакета
.
Важно
# apt-get update
apt-get
позволяет устанавливать в систему пакеты, требующие для работы наличие других, пока ещё не установленных пакетов. В этом случае он определяет, какие пакеты необходимо установить. apt-get
устанавливает их, пользуясь всеми доступными репозиториями.
apt-get install stardict-mueller7
приведёт к следующему диалогу с APT (если пакет еще не установлен):
# apt-get install stardict-mueller7
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Следующие НОВЫЕ пакеты будут установлены:
stardict-mueller7
0 будет обновлено, 1 новых установлено, 0 пакетов будет удалено и 0 не будет обновлено.
Необходимо получить 0B/3135kB архивов.
После распаковки потребуется дополнительно 3095kB дискового пространства.
Совершаем изменения...
Preparing... ####################### [100%]
1: stardict-mueller7 ####################### [100%]
Running /usr/lib/rpm/posttrans-filetriggers
Завершено.
apt-get install имя_пакета
используется также и для обновления уже установленного пакета или группы пакетов. В этом случае apt-get
дополнительно проверяет, есть ли обновлённая, в сравнении с установленной в системе, версия пакета в репозитории.
apt-get install stardict-mueller7
будет таким:
# apt-get install stardict-mueller7
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Последняя версия stardict-mueller7 уже установлена.
0 будет обновлено, 0 новых установлено, 0 пакетов будет удалено и 2262 не будет обновлено.
# apt-get install /путь/к/файлу.rpm
При этом APT проведёт стандартную процедуру проверки зависимостей и конфликтов с уже установленными пакетами.
apt-get
отказывается выполнять операции установки, удаления или обновления. В этом случае необходимо повторить операцию, задав опцию -f
, заставляющую apt-get
исправить нарушенные зависимости, удалить или заменить конфликтующие пакеты. В этом случае необходимо внимательно следить за сообщениями, выводимыми apt-get
. Любые действия в этом режиме обязательно требуют подтверждения со стороны пользователя.
apt-get remove имя_пакета
. Для того чтобы не нарушать целостность системы, будут удалены и все пакеты, зависящие от удаляемого. В случае удаления пакета, который относится к базовым компонентам системы, apt-get
потребует дополнительное подтверждение с целью предотвращения возможной случайной ошибки.
Важно
apt-get
удалить базовый компонент системы, вы увидите следующий запрос на подтверждение операции:
# apt-get remove filesystem
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Следующие пакеты будут УДАЛЕНЫ:
...
ВНИМАНИЕ: Будут удалены важные для работы системы пакеты
Обычно этого делать не следует. Вы должны точно понимать возможные последствия!
...
0 будет обновлено, 0 новых установлено, 2648 пакетов будет удалено и 0 не будет обновлено.
Необходимо получить 0B архивов.
После распаковки будет освобождено 8994MB дискового пространства.
Вы делаете нечто потенциально опасное!
Введите фразу 'Yes, do as I say!' чтобы продолжить.
Предупреждение
# apt-get update
&& apt-get dist-upgrade
apt-get update
) обновит индексы пакетов. Вторая команда (apt-get dist-upgrade
) позволяет обновить только те установленные пакеты, для которых в репозиториях, перечисленных в /etc/apt/sources.list
, имеются новые версии.
Примечание
apt-get dist-upgrade
) обновит систему, но ядро ОС не будет обновлено.
# update-kernel
Примечание
update-kernel
необходимо выполнить команду apt-get update
.
update-kernel
обновляет и модули ядра, если в репозитории обновилось что-то из модулей без обновления ядра.
# remove-old-kernels
epm
упрощает процедуру управления пакетами, может использоваться в скриптах и установщиках, сервисных программах, в повседневном администрировании различных систем. В epm
добавлены типовые операции, которые в случае использования apt потребовали бы ввода более одной команды.
Примечание
epm
, если она еще не установлена, выполняется командой:
# apt-get install eepm
epm
и её опциях можно получить, выполнив команду:
$ epm --help
Ниже описаны лишь некоторые возможности утилиты epm
.
# epm install <имя_пакета>
Важно
epm install
не будут выполнены установочные скрипты из пакета. Это предохраняет систему от повреждения, но может привести к тому, что пакет не заработает. Вернуть стандартное поведение можно добавлением --scripts
:
# epm install --scripts <имя_пакета>
# epm play <имя_программы>
Список программ, которые можно установить данной командой, можно просмотреть, выполнив команду:
$ epm play
Run with a name of a play script to run:
anydesk - Install AnyDesk from the official site
assistant - Install Assistant (Ассистент) from the official site
…
yandex-browser - Install Yandex browser from the official site
yandex-disk - Install Yandex Disk from the official site
zoom - Install Zoom client from the official site
Команда epm play
требует наличия доступа в сеть Интернет.
Примечание
# epm install --repack <имя_пакета>
Для deb-пакетов ключ --repack
применяется автоматически.
# epm remove <имя_пакета>
# epm search <текст>
$ epm list
# epm autoremove
# epm full-upgrade
Содержание
/
.
/media/cdrom
(путь в дистрибутиве обозначается с использованием /, а не \, как в DOS/Windows).
/
:
/bin
— командные оболочки (shell), основные утилиты;
/boot
— содержит ядро системы;
/dev
— псевдофайлы устройств, позволяющие работать с устройствами напрямую. Файлы в /dev
создаются сервисом udev
/etc
— общесистемные конфигурационные файлы для большинства программ в системе;
/etc/rc?.d
, /etc/init.d
, /etc/rc.boot
, /etc/rc.d
— каталоги, где расположены командные файлы, выполняемые при запуске системы или при смене её режима работы;
/etc/passwd
— база данных пользователей, в которой содержится информация об имени пользователя, его настоящем имени, личном каталоге, его зашифрованный пароль и другие данные;
/etc/shadow
— теневая база данных пользователей. При этом информация из файла /etc/passwd
перемещается в /etc/shadow
, который недоступен для чтения всем, кроме пользователя root. В случае использования альтернативной схемы управления теневыми паролями (TCB), все теневые пароли для каждого пользователя располагаются в каталоге /etc/tcb/имя пользователя/shadow
;
/home
— домашние каталоги пользователей;
/lib
— содержит файлы динамических библиотек, необходимых для работы большей части приложений, и подгружаемые модули ядра;
/lost+found
— восстановленные файлы;
/media
— подключаемые носители (каталоги для монтирования файловых систем сменных устройств);
/mnt
— точки временного монтирования;
/opt
— вспомогательные пакеты;
/proc
— виртуальная файловая система, хранящаяся в памяти компьютера при загруженной ОС. В данном каталоге расположены самые свежие сведения обо всех процессах, запущенных на компьютере.
/root
— домашний каталог администратора системы;
/run
— файлы состояния приложений;
/sbin
— набор программ для административной работы с системой (системные утилиты);
/selinux
— виртуальная файловая система SELinux;
/srv
— виртуальные данные сервисных служб;
/sys
— файловая система, содержащая информацию о текущем состоянии системы;
/tmp
— временные файлы.
/usr
— пользовательские двоичные файлы и данные, используемые только для чтения (программы и библиотеки);
/var
— файлы для хранения изменяющихся данных (рабочие файлы программ, очереди, журналы).
/usr
:
/usr/bin
— дополнительные программы для всех учетных записей;
/usr/sbin
— команды, используемые при администрировании системы и не предназначенные для размещения в файловой системе root;
/usr/local
— место, где рекомендуется размещать файлы, установленные без использования пакетных менеджеров, внутренняя организация каталогов практически такая же, как и корневого каталога;
/usr/man
— каталог, где хранятся файлы справочного руководства man;
/usr/share
— каталог для размещения общедоступных файлов большей части приложений.
/var
:
/var/log
— место, где хранятся файлы аудита работы системы и приложений;
/var/spool
— каталог для хранения файлов, находящихся в очереди на обработку для того или иного процесса (очереди печати, непрочитанные или не отправленные письма, задачи cron т.д.).
/dev
файловой системы дистрибутива (об этом — ниже). Диски (в том числе IDE/SATA/SCSI/SAS жёсткие диски, USB-диски) имеют имена:
/dev/sda
— первый диск;
/dev/sdb
— второй диск;
/dev/sdX
, где X — a, b, c, d, e, … в зависимости от порядкового номера диска на шине.
/dev/sdb4
— четвертый раздел второго диска.
/
) и раздел для ядра (/boot
). Если на диске много свободного места, то можно создать отдельные разделы для каталогов /usr
, /home
, /var
.
command.com
в DOS, но несравненно мощнее. При помощи командных интерпретаторов можно писать небольшие программы — сценарии (скрипты). В Linux доступны следующие командные оболочки:
bash
— самая распространенная оболочка под linux. Она ведет историю команд и предоставляет возможность их редактирования;
pdksh
— клон korn shell, хорошо известной оболочки в UNIX™ системах.
$ echo
$SHELL
history
. Команды, присутствующие в истории, отображаются в списке пронумерованными. Чтобы запустить конкретную команду необходимо набрать:
!номер команды
!!запустится последняя из набранных команд.
gunzip
, можно набрать следующую команду:
gu
$
guguile
gunzip
gupnp-binding-tool
gunzip
— это единственное имя, третьей буквой которого является «n»), а затем нажать клавишу Tab, то оболочка самостоятельно дополнит имя. Чтобы запустить команду нужно нажать Enter.
$PATH
. По умолчанию в этот перечень каталогов не входит текущий каталог, обозначаемый ./
(точка слеш) (если только не выбран один из двух самых слабых уровней защиты). Поэтому, для запуска программы из текущего каталога, необходимо использовать команду (в примере запускается команда prog
):
./prog
cal
, выводящая календарь на текущий месяц.
$
cal
Сентябрь 2023 Пн Вт Ср Чт Пт Сб Вс 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
Команда$
cal
1 2024
Январь 2024 Пн Вт Ср Чт Пт Сб Вс 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
cal 1 2024
состоит из двух частей — собственно команды cal
и «остального». То, что следует за командой называется параметрами (или аргументами) и они вводятся для изменения поведения команды. В большинстве случаев, первое слово считается именем команды, а остальные — её параметрами.
date
, только для работы по Гринвичу ей нужен дополнительный параметр -u
(он же --universal
).
$date
Ср 27 сен 2023 18:58:50 EET
$date
-u
Ср 27 сен 2023 16:59:09 UTC
--help
. К примеру, получить подсказку о том, что делает команда rm
, можно, набрав в терминале rm
--help
.
man
. Пример:
$man
ls
Примечание
ls
-l
-F
можно ввести команду ls
-lF
Учетные записи пользователей
su
su
позволяет изменить «владельца» текущего сеанса (сессии) без необходимости завершать сеанс и открывать новый.
su
[ОПЦИИ...] [ПОЛЬЗОВАТЕЛЬ]
su -
будет запрошен пароль суперпользователя (root), и, в случае ввода корректного пароля, пользователь получит права администратора. Чтобы вернуться к правам пользователя, необходимо ввести команду:
exit
id
id
выводит информацию о пользователе и группах, в которых он состоит, для заданного пользователя или о текущем пользователе (если ничего не указано).
id
[ОПЦИИ...] [ПОЛЬЗОВАТЕЛЬ]
passwd
passwd
меняет (или устанавливает) пароль, связанный с входным_именем пользователя.
Основные операции с файлами и каталогами
ls
ls
(list) печатает в стандартный вывод содержимое каталогов.
ls
[ОПЦИИ...] [ФАЙЛ...]
-a
— просмотр всех файлов, включая скрытые;
-l
— отображение более подробной информации;
-R
— выводить рекурсивно информацию о подкаталогах.
cd
cd
предназначена для смены каталога. Команда работает как с абсолютными, так и с относительными путями. Если каталог не указан, используется значение переменной окружения $HOME
(домашний каталог пользователя). Если каталог задан полным маршрутным именем, он становится текущим. По отношению к новому каталогу нужно иметь право на выполнение, которое в данном случае трактуется как разрешение на поиск.
cd
[-L|-P] [КАТАЛОГ]
$OLDPWD
. Если переход был осуществлен по переменной окружения $CDPATH
или в качестве аргумента был задан «-» и смена каталога была успешной, то абсолютный путь нового рабочего каталога будет выведен на стандартный вывод.
docs/
(относительный путь):
cd
docs/
/usr/bin
(абсолютный путь):
cd
/usr/bin/
cd
..
cd
-
cd
pwd
pwd
выводит абсолютный путь текущего (рабочего) каталога.
pwd
[-L|-P]
-P
— не выводить символические ссылки;
-L
— выводить символические ссылки.
rm
rm
служит для удаления записей о файлах. Если заданное имя было последней ссылкой на файл, то файл уничтожается.
Предупреждение
rm
[ОПЦИИ...]
<ФАЙЛ>
-f
— никогда не запрашивать подтверждения;
-i
— всегда запрашивать подтверждение;
-r, -R
— рекурсивно удалять содержимое указанных каталогов.
html
в каталоге ~/html
:
rm
-i
~/html/*.html
mkdir
mkdir
— команда для создания новых каталогов.
mkdir
[-p] [-m права] <КАТАЛОГ...>
rmdir
rmdir
удаляет каталоги из файловой системы. Каталог должен быть пуст перед удалением.
rmdir
[ОПЦИИ...] <КАТАЛОГ...>
-p
— удалить каталог и его потомки.
rmdir
часто заменяется командой rm -rf
, которая позволяет удалять каталоги, даже если они не пусты.
cp
cp
предназначена для копирования файлов из одного в другие каталоги.
cp
[-fip] [ИСХ_ФАЙЛ...] [ЦЕЛ_ФАЙЛ...]
cp
[-fip] [ИСХ_ФАЙЛ...] [КАТАЛОГ]
cp
[-R] [[-H] | [-L] | [-P]] [-fip] [ИСХ_ФАЙЛ...] [КАТАЛОГ]
-p
— сохранять по возможности времена изменения и доступа к файлу, владельца и группу, права доступа;
-i
— запрашивать подтверждение перед копированием в существующие файлы;
-r, -R
— рекурсивно копировать содержимое каталогов.
mv
mv
предназначена для перемещения файлов.
mv
[-fi] [ИСХ_ФАЙЛ...] [ЦЕЛ_ФАЙЛ...]
mv
[-fi] [ИСХ_ФАЙЛ...] [КАТАЛОГ]
mv
перемещает исх_файл в цел_файл (происходит переименование файла).
mv
перемещает исходные файлы в указанный каталог под именами, совпадающими с краткими именами исходных файлов.
-f
— не запрашивать подтверждения перезаписи существующих файлов;
-i
— запрашивать подтверждение перезаписи существующих файлов.
cat
cat
последовательно выводит содержимое файлов.
cat
[ОПЦИИ...] [ФАЙЛ...]
-n, --number
— нумеровать все строки при выводе;
-E, --show-ends
— показывать $ в конце каждой строки.
head
head
выводит первые 10 строк каждого файла на стандартный вывод.
head
[ОПЦИИ] [ФАЙЛ...]
-n, --lines=[-]K
— вывести первые К строк каждого файла, а не первые 10;
-q, --quiet
— не печатать заголовки с именами файлов.
less
less
позволяет постранично просматривать текст (для выхода необходимо нажать q).
less
<ФАЙЛ>
grep
grep
имеет много опций и предоставляет возможности поиска символьной строки в файле.
grep
[шаблон_поиска] <ФАЙЛ>
Поиск файлов
find
find
предназначена для поиска всех файлов, начиная с корневого каталога. Поиск может осуществляться по имени, типу или владельцу файла.
find
[-H] [-L] [-P] [-Oуровень] [-D help|tree|search|stat|rates|opt|exec] [ПУТЬ…] [ВЫРАЖЕНИЕ]
-name
— поиск по имени файла;
-type
— поиск по типу f=файл, d=каталог, l=ссылка(lnk);
-user
— поиск по владельцу (имя или UID).
find
, можно выполнять различные действия над найденными файлами. Основные действия:
-exec команда \;
— выполнить команду. Запись команды должна заканчиваться экранированной точкой с запятой. Строка «{}» заменяется текущим маршрутным именем файла;
execdir команда \;
— то же самое что и -exec
, но команда вызывается из подкаталога, содержащего текущий файл;
-ok команда
— эквивалентно -exec
за исключением того, что перед выполнением команды запрашивается подтверждение (в виде сгенерированной командной строки со знаком вопроса в конце) и она выполняется только при ответе: «y»;
-print
— вывод имени файла на экран.
-print
.
find
. -type f -name "~*" -print
file.bak
:
find
. -newer file.bak -type f -print
a.out
или *.o
, доступ к которым не производился в течение недели:
find
/ \( -name a.out -o -name '*.o' \) \ -atime +7 -exec rm {} \;
find
. -size 0c -ok rm {} \;
whereis
whereis
сообщает путь к исполняемому файлу программы, ее исходным файлам (если есть) и соответствующим страницам справочного руководства.
whereis
[ОПЦИИ...] <ФАЙЛ>
-b
— вывод информации только об исполняемых файлах;
-m
— вывод информации только о страницах справочного руководства;
-s
— вывод информации только об исходных файлах.
Мониторинг и управление процессами
ps
ps
отображает список текущих процессов.
ps
[ОПЦИИ...]
-a
— вывести информацию о процессах, ассоциированных с терминалами;
-f
— вывести «полный» список;
-l
— вывести «длинный» список;
-p список
— вывести информацию о процессах с перечисленными в списке PID;
-u список
— вывести информацию о процессах с перечисленными идентификаторами или именами пользователей.
kill
kill
позволяет прекратить исполнение процесса или передать ему сигнал.
kill
[-s] [сигнал] [идентификатор] [...]
kill
[-l] [статус_завершения]
kill
[-номер_сигнала] [идентификатор] [...]
-l
— вывести список поддерживаемых сигналов;
-s сигнал, -сигнал
— послать сигнал с указанным именем.
kill
не дает желательного эффекта, необходимо использовать команду kill
с параметром -9
(kill
-9
PID_номер).
df
df
показывает количество доступного дискового пространства в файловой системе, в которой содержится файл, переданный как аргумент. Если ни один файл не указан, показывается доступное место на всех смонтированных файловых системах. Размеры по умолчанию указаны в блоках по 1КБ.
df
[ОПЦИИ] [ФАЙЛ...]
--total
— подсчитать общий объем в конце;
-h, --human-readable
— печатать размеры в удобочитаемом формате (например, 1K, 234M, 2G).
du
du
подсчитывает использование диска каждым файлом, для каталогов подсчет происходит рекурсивно.
du
[ОПЦИИ] [ФАЙЛ...]
-a, --all
— выводить общую сумму для каждого заданного файла, а не только для каталогов;
-c, --total
— подсчитать общий объем в конце. Может быть использовано для выяснения суммарного использования дискового пространства для всего списка заданных файлов;
-d, --max-depth=N
— выводить объем для каталога (или файлов, если указано --all
) только если она на N или менее уровней ниже аргументов командной строки;
-S, --separate-dirs
— выдавать отдельно размер каждого каталога, не включая размеры подкаталогов;
-s, --summarize
— отобразить только сумму для каждого аргумента.
which
which
отображает полный путь к указанным командам или сценариям.
which
[ОПЦИИ] <ФАЙЛ...>
-a, --all
— выводит все совпавшие исполняемые файлы по содержимому в переменной окружения $PATH
, а не только первый из них;
-c, --total
— подсчитать общий объем в конце. Может быть использовано для выяснения суммарного использования дискового пространства для всего списка заданных файлов;
-d, --max-depth=N
— выводить объем для каталога (или файлов, если указано --all
) только если она на N или менее уровней ниже аргументов командной строки;
-S, --separate-dirs
— выдавать отдельно размер каждого каталога, не включая размеры подкаталогов;
--skip-dot
— пропускает все каталоги из переменной окружения $PATH
, которые начинаются с точки.
Использование многозадачности
bg
bg
позволяет перевести задание на задний план.
bg
[ИДЕНТИФИКАТОР ...]
fg
fg
позволяет перевести задание на передний план.
fg
[ИДЕНТИФИКАТОР ...]
Сжатие и упаковка файлов
tar
tar
, которая преобразует файл или группу файлов в архив без сжатия (tarfile).
tar
-cf [имя создаваемого файла архива] [упаковываемые файлы и/или каталоги]
tar
-cf moi_dokumenti.tar Docs project.tex
tar
-xf [имя файла архива]
gzip
, bzip2
и 7z
.
cat
. По умолчанию команда cat
читает данные из всех файлов, которые указаны в командной строке, и посылает эту информацию непосредственно в стандартный вывод (stdout). Следовательно, команда:
cat
history-final masters-thesis
выведет на экран сначала содержимое файла history-final
, а затем — файла masters-thesis
.
cat
читает входные данные из stdin и возвращает их в stdout. Пример:
cat
Hello there.
Hello there.
Bye.
Bye.
Ctrl-D
cat
немедленно возвращает на экран. При вводе информации со стандартного ввода конец текста сигнализируется вводом специальной комбинации клавиш, как правило, Ctrl+D. Сокращённое название сигнала конца текста — EOT (end of text).
sort
является простым фильтром — она сортирует входные данные и посылает результат на стандартный вывод. Совсем простым фильтром является команда cat
— она ничего не делает с входными данными, а просто пересылает их на выход.
ls
на stdin команды sort
:
ls
|sort
-r notes masters-thesis history-final english-list
ls
/usr/bin |more
где командаls
|sort
-r |head
-1 notes
head -1
выводит на экран первую строку получаемого ей входного потока строк (в примере поток состоит из данных от команды ls
), отсортированных в обратном алфавитном порядке.
ls
> file-list
уничтожит содержимое файла file-list
, если этот файл ранее существовал, и создаст на его месте новый файл. Если вместо этого перенаправление будет сделано с помощью символов >>, то вывод будет приписан в конец указанного файла, при этом исходное содержимое файла не будет уничтожено.
Примечание
chmod
предназначена для изменения прав доступа файлов и каталогов.
chmod
[ОПЦИИ] РЕЖИМ[,РЕЖИМ]... <ФАЙЛ>
chmod
[ОПЦИИ] --reference=ИФАЙЛ <ФАЙЛ>
-R
— рекурсивно изменять режим доступа к файлам, расположенным в указанных каталогах;
--reference=ИФАЙЛ
— использовать режим файла ИФАЙЛ.
chmod
изменяет права доступа каждого указанного файла в соответствии с правами доступа, указанными в параметре режим, который может быть представлен как в символьном виде, так и в виде восьмеричного, представляющего битовую маску новых прав доступа.
[ugoa...][[+-=][разрешения...]...]Здесь разрешения — это ноль или более букв из набора «rwxXst» или одна из букв из набора «ugo».
f1
, а членам группы и прочим пользователям только читать. Команду можно записать двумя способами:
$chmod
644 f1 $chmod
u=rw,go=r f1
f2
:
$ chmod
+x f2
f3
:
$ chmod
+t f3
f4
:
$chmod
=rwx,g+s f4 $chmod
2777 f4
chown
изменяет владельца и/или группу для каждого заданного файла.
chown
[КЛЮЧ]…[ВЛАДЕЛЕЦ][:[ГРУППА]] <ФАЙЛ>
chown
[ОПЦИИ] --reference=ИФАЙЛ <ФАЙЛ>
-R
— рекурсивно изменять файлы и каталоги;
--reference=ИФАЙЛ
— использовать владельца и группу файла ИФАЙЛ.
/u
на пользователя test:
chown
test /u
/u
:
chown
test:staff /u
/u
и вложенных файлов на test:
chown
-hR test /u
chgrp
изменяет группу для каждого заданного файла.
chgrp
[ОПЦИИ] ГРУППА <ФАЙЛ>
chgrp
[ОПЦИИ] --reference=ИФАЙЛ <ФАЙЛ>
-R
— рекурсивно изменять файлы и каталоги;
--reference=ИФАЙЛ
— использовать группу файла ИФАЙЛ.
umask
задает маску режима создания файла в текущей среде командного интерпретатора равной значению, задаваемому операндом режим. Эта маска влияет на начальное значение битов прав доступа всех создаваемых далее файлов.
umask
[-p] [-S] [режим]
$ umask
0022
или то же самое в символьном режиме:
$ umask -S
u=rwx,g=rx,o=rx
umask
распознается и выполняется командным интерпретатором bash.
chattr
изменяет атрибуты файлов на файловых системах ext3, ext4.
chattr
[ -RVf ] [+-=aAcCdDeFijmPsStTux] [ -v версия ] <ФАЙЛЫ> …
-R
— рекурсивно изменять атрибуты каталогов и их содержимого. Символические ссылки игнорируются;
-V
— выводит расширенную информацию и версию программы;
-f
— подавлять сообщения об ошибках;
-v версия
— установить номер версии/генерации файла.
+-=aAcCdDeFijmPsStTux
a
— только добавление к файлу;
A
— не обновлять время последнего доступа (atime) к файлу;
c
— сжатый файл;
C
— отключение режима «Copy-on-write» для указанного файла;
d
— не архивировать (отключает создание архивной копии файла командой dump);
D
— синхронное обновление каталогов;
e
— включает использование extent при выделении места на устройстве (атрибут не может быть отключён с помощью chattr
);
F
— регистронезависимый поиск в каталогах;
i
— неизменяемый файл (файл защищен от изменений: не может быть удалён или переименован, к этому файлу не могут быть созданы ссылки, и никакие данные не могут быть записаны в этот файл);
j
— ведение журнала данных (данные файла перед записью будут записаны в журнал ext3/ext4);
m
— не сжимать;
P
— каталог с вложенными файлами является иерархической структурой проекта;
s
— безопасное удаление (перед удалением все содержимое файла полностью затирается «00»);
S
— синхронное обновление (аналогичен опции монтирования «sync» файловой системы);
t
— отключает метод tail-merging для файлов;
T
— вершина иерархии каталогов;
u
— неудаляемый (при удалении файла его содержимое сохраняется, это позволяет пользователю восстановить файл);
x
— прямой доступ к файлам (атрибут не может быть установлен с помощью chattr
).
lsattr
выводит атрибуты файла расширенной файловой системы.
lsattr
[ -RVadlpv ] <ФАЙЛЫ> …
-R
— рекурсивно изменять атрибуты каталогов и их содержимого. Символические ссылки игнорируются;
-V
— выводит расширенную информацию и версию программы;
-a
— просматривает все файлы в каталоге, включая скрытые файлы (имена которых начинаются с «.»);
-d
— отображает каталоги также, как и файлы вместо того, чтобы просматривать их содержимое;
-l
— отображает параметры, используя длинные имена вместо одного символа;
-p
— выводит номер проекта файла;
-v
— выводит номер версии/генерации файла.
getfacl
выводит атрибуты файла расширенной файловой системы.
getfacl
[ --aceEsRLPtpndvh ] <ФАЙЛ> …
-a
— вывести только ACL файла;
-d
— вывести только ACL по умолчанию;
-c
— не показывать заголовок (имя файла);
-e
— показывать все эффективные права;
-E
— не показывать эффективные права;
-s
— пропускать файлы, имеющие только основные записи;
-R
— для подкаталогов рекурсивно;
-L
— следовать по символическим ссылкам, даже если они не указаны в командной строке;
-P
— не следовать по символическим ссылкам, даже если они указаны в командной строке;
-t
— использовать табулированный формат вывода;
-p
— не удалять ведущие «/» из пути файла;
-n
— показывать числовые значения пользователя/группы.
1: # file: somedir/ 2: # owner: lisa 3: # group: staff 4: # flags: -s- 5: user::rwx 6: user:joe:rwx #effective:r-x 7: group::rwx #effective:r-x 8: group:cool:r-x 9: mask:r-x 10: other:r-x 11: default:user::rwx 12: default:user:joe:rwx #effective:r-x 13: default:group::r-x 14: default:mask:r-x 15: default:oter:---
setfacl
изменяет ACL к файлам или каталогам. В командной строке за последовательностью команд идет последовательность файлов (за которой, в свою очередь, также может идти последовательность команд и так далее).
setfacl
[-bkndRLPvh] [{-m|-x} acl_spec] [{-M|-X} acl_file] <ФАЙЛ> …
setfacl
--restore=file
-b
— удалить все разрешенные записи ACL;
-k
— удалить ACL по умолчанию;
-n
— не пересчитывать маску эффективных прав, обычно setfacl
пересчитывает маску (кроме случая явного задания маски) для того, чтобы включить ее в максимальный набор прав доступа элементов, на которые воздействует маска (для всех групп и отдельных пользователей);
-d
— применить ACL по умолчанию;
-R
— для подкаталогов рекурсивно;
-L
— переходить по символическим ссылкам на каталоги (имеет смысл только в сочетании с -R
);
-P
— не переходить по символическим ссылкам на каталоги (имеет смысл только в сочетании с -R
);
-L
— следовать по символическим ссылкам, даже если они не указаны в командной строке;
-P
— не следовать по символическим ссылкам, даже если они указаны в командной строке;
--mask
— пересчитать маску эффективных прав;
-m
— изменить текущий ACL для файла;
-M
— прочитать записи ACL для модификации из файла;
-x
— удалить записи из ACL файла;
-X
— прочитать записи ACL для удаления из файла;
--restore=file
— восстановить резервную копию прав доступа, созданную командой getfacl –R
или ей подобной. Все права доступа дерева каталогов восстанавливаются, используя этот механизм. В случае если вводимые данные содержат элементы для владельца или группы-владельца, и команда setfacl
выполняется пользователем с именем root, то владелец и группа-владелец всех файлов также восстанавливаются. Эта опция не может использоваться совместно с другими опциями за исключением опции --test
;
--set=acl
— установить ACL для файла, заменив текущий ACL;
--set-file=file
— прочитать записи ACL для установления из файла;
--test
— режим тестирования (ACL не изменяются).
--set
, -m
и -x
должны быть перечислены записи ACL в командной строке. Элементы ACL разделяются одинарными кавычками.
-set-file
, -M
и -X
команда setfacl
принимает множество элементов в формате вывода команды getfacl
. В строке обычно содержится не больше одного элемента ACL.
setfacl
использует следующие форматы элементов ACL:
[d[efault]:] [u[ser]:]uid [:perms]
[d[efault]:] g[roup]:gid [:perms]
[d[efault]:] m[ask][:] [:perms]
[d[efault]:] o[ther][:] [:perms]
setfacl
создает права доступа, используя уже существующие, согласно следующим условиям:
test.txt
, принадлежащего пользователю liza и группе docs, так, чтобы:
$Установить разрешения (от пользователя liza):ls -l test.txt
-rw-r-r-- 1 liza docs 8 янв 22 15:54 test.txt $getfacl test.txt
# file: test.txt # owner: liza # group: docs user::rw- group::r-- other::r--
$Просмотреть разрешения (от пользователя liza):setfacl -m u:ivan:rw- test.txt
$setfacl -m u:misha:--- test.txt
$ getfacl test.txt
# file: test.txt
# owner: liza
# group: docs
user::rw-
user:ivan:rw-
user:misha:---
group::r--
mask::rw-
other::r--
Примечание
ls -l
указывает на использование ACL:
$ ls -l test.txt
-rw-rw-r--+ 1 liza docs 8 янв 22 15:54 test.txt
su
(shell of user), которая позволяет выполнить одну или несколько команд от лица другого пользователя. По умолчанию эта утилита выполняет команду sh
от пользователя root, то есть запускает командный интерпретатор. Отличие от предыдущего способа в том, что всегда известно, кто именно запускал su
, а значит, ясно, кто выполнил определённое административное действие.
su
, а утилиту sudo
, которая позволяет выполнять только заранее заданные команды.
Важно
su
и sudo
, необходимо быть членом группы wheel. Пользователь, созданный при установке системы, по умолчанию уже включён в эту группу.
control
доступна только для суперпользователя (root). Для того чтобы посмотреть, что означает та или иная политика control
(разрешения выполнения конкретной команды, управляемой control
), надо запустить команду с ключом help:
# control su help
Запустив control
без параметров, можно увидеть полный список команд, управляемых командой (facilities) вместе с их текущим состоянием и набором допустимых состояний.
su -
su
без ключа, то происходит вызов командного интерпретатора с правами root. При этом значение переменных окружения, в частности $PATH
, остаётся таким же, как у пользователя: в переменной $PATH
не окажется каталогов /sbin
, /usr/sbin
, без указания полного имени будут недоступны команды route
, shutdown
, mkswap
и другие. Более того, переменная $HOME
будет указывать на каталог пользователя, все программы, запущенные в режиме суперпользователя, сохранят свои настройки с правами root в каталоге пользователя, что в дальнейшем может вызвать проблемы.
su -
. В этом режиме su
запустит командный интерпретатор в качестве login shell, и он будет вести себя в точности так, как если бы в системе зарегистрировался root.
id
, вывод её может быть примерно следующим:
uid=500(test) gid=500(test) группы=500(test),16(rpm)
Примечание
useradd
[ОПЦИИ...]
<ИМЯ ПОЛЬЗОВАТЕЛЯ>useradd -D
[ОПЦИИ...]
-b каталог
— базовый каталог для домашнего каталога новой учётной записи;
-c комментарий
— текстовая строка (обычно используется для указания фамилии и мени);
-d каталог
— домашний каталог новой учётной записи;
-D
— показать или изменить настройки по умолчанию для useradd;
-e дата
— дата устаревания новой учётной записи;
-g группа
— имя или ID первичной группы новой учётной записи;
-G группы
— список дополнительных групп (через запятую) новой учётной записи;
-m
— создать домашний каталог пользователя;
-M
— не создавать домашний каталог пользователя;
-p пароль
— зашифрованный пароль новой учётной записи (не рекомендуется);
-s оболочка
— регистрационная оболочка новой учётной записи (по умолчанию /bin/bash
);
-u UID
— пользовательский ID новой учётной записи.
useradd
имеет множество параметров, которые позволяют менять её поведение по умолчанию. Например, можно принудительно указать, какой будет UID или какой группе будет принадлежать пользователь:
# useradd -u 1500 -G usershares new_user
passwd
и утилит shadow
.
passwd [ОПЦИИ...]
[ИМЯ ПОЛЬЗОВАТЕЛЯ]
-d
, --delete
— удалить пароль для указанной записи;
-f
, --force
— форсировать операцию;
-k
, --keep-tokens
— сохранить не устаревшие пароли;
-l
, --lock
— блокировать указанную запись;
--stdin
— прочитать новые пароли из стандартного ввода;
-S
, --status
— дать отчет о статусе пароля в указанной записи;
-u
, --unlock
— разблокировать указанную запись;
-?
, --help
— показать справку и выйти;
--usage
— дать короткую справку по использованию;
-V
, --version
— показать версию программы и выйти.
passwd
заканчивает работу с кодом выхода 0. Код выхода 1 означает, что произошла ошибка. Текстовое описание ошибки выводится на стандартный поток ошибок.
useradd
и passwd
:
#useradd
test1 #passwd
test1 passwd: updating all authentication tokens for user test1. You can now choose the new password or passphrase. A valid password should be a mix of upper and lower case letters, digits, and other characters. You can use a password containing at least 7 characters from all of these classes, or a password containing at least 8 characters from just 3 of these 4 classes. An upper case letter that begins the password and a digit that ends it do not count towards the number of character classes used. A passphrase should be of at least 3 words, 11 to 72 characters long, and contain enough different characters. Alternatively, if no one else can see your terminal now, you can pick this as your password: "Burst*texas$Flow". Enter new password: Weak password: too short. Re-type new password: passwd: all authentication tokens updated successfully.
passwd
— но если он попытается поставить слабый пароль, система откажет ему (в отличие от root) в изменении.
/etc/passwdqc.conf
.
passwdqc.conf
состоит из 0 или более строк следующего формата:
опция=значениеПустые строки и строки, начинающиеся со знака решетка («#»), игнорируются. Символы пробела между опцией и значением не допускаются.
min=N0,N1,N2,N3,N4
(min=disabled,24,11,8,7) — минимально допустимая длина пароля.
Примечание
max=N
(max=40) — максимально допустимая длина пароля. Эта опция может быть использована для того, чтобы запретить пользователям устанавливать пароли, которые могут быть слишком длинными для некоторых системных служб. Значение 8 обрабатывается особым образом: пароли длиннее 8 символов, не отклоняются, а обрезаются до 8 символов для проверки надежности (пользователь при этом предупреждается).
passphrase=N
(passphrase=3) — число слов, необходимых для ключевой фразы (значение 0 отключает поддержку парольных фраз).
match=N
(match=4) — длина общей подстроки, необходимой для вывода, что пароль хотя бы частично основан на информации, найденной в символьной строке (значение 0 отключает поиск подстроки). Если найдена слабая подстрока пароль не будет отклонен; вместо этого он будет подвергаться обычным требованиям к прочности при удалении слабой подстроки. Поиск подстроки нечувствителен к регистру и может обнаружить и удалить общую подстроку, написанную в обратном направлении.
similar=permit|deny
(similar=deny) — параметр similar=permit
разрешает задать новый пароль, если он похож на старый (параметр similar=deny
— запрещает). Пароли считаются похожими, если есть достаточно длинная общая подстрока, и при этом новый пароль с частично удаленной подстрокой будет слабым.
random=N[,only]
(random=42) — размер случайно сгенерированных парольных фраз в битах (от 26 до 81) или 0, чтобы отключить эту функцию. Любая парольная фраза, которая содержит предложенную случайно сгенерированную строку, будет разрешена вне зависимости от других возможных ограничений. Значение only
используется для запрета выбранных пользователем паролей.
enforce=none|users|everyone
(enforce=users) — параметр enforce=users
задает ограничение задания паролей в passwd на пользователей без полномочий root. Параметр enforce=everyone
задает ограничение задания паролей в passwd и на пользователей, и на суперпользователя root. При значении none
модуль PAM будет только предупреждать о слабых паролях.
retry=N
(retry=3) — количество запросов нового пароля, если пользователь с первого раза не сможет ввести достаточно надежный пароль и повторить его ввод.
/etc/passwdqc.conf
:
min=8,7,4,4,4 enforce=everyoneВ указанном примере пользователям, включая суперпользователя root, будет невозможно задать пароли:
chage
.
Примечание
# apt-get install shadow-change
chage
изменяет количество дней между сменой пароля и датой последнего изменения пароля.
chage [опции] логин
-d
, --lastday LAST_DAY
— установить последний день смены пароля в LAST_DAY на день (число дней с 1 января 1970). Дата также может быть указана в формате ГГГГ-ММ-ДД;
-E
, -expiredate EXPIRE_DAYS
— установить дату окончания действия учётной записи в EXPIRE_DAYS (число дней с 1 января 1970) Дата также может быть указана в формате ГГГГ-ММ-ДД. Значение -1
удаляет дату окончания действия учётной записи;
-I
, --inactive INACTIVE
— используется для задания количества дней «неактивности», то есть дней, когда пользователь вообще не входил в систему, после которых его учетная запись будет заблокирована. Пользователь, чья учетная запись заблокирована, должен обратиться к системному администратору, прежде чем снова сможет использовать систему. Значение -1
отключает этот режим;
-l
, --list
— просмотр информации о «возрасте» учётной записи пользователя;
-m
, --mindays MIN_DAYS
— установить минимальное число дней перед сменой пароля. Значение 0
в этом поле обозначает, что пользователь может изменять свой пароль, когда угодно;
-M
, --maxdays MAX_DAYS
— установить максимальное число дней перед сменой пароля. Когда сумма MAX_DAYS и LAST_DAY меньше, чем текущий день, у пользователя будет запрошен новый пароль до начала работы в системе. Эта операция может предваряться предупреждением (параметр -W
). При установке значения -1
, проверка действительности пароля не будет выполняться;
-W
, --warndays WARN_DAYS
— установить число дней до истечения срока действия пароля, начиная с которых пользователю будет выдаваться предупреждение о необходимости смены пароля.
# chage -M 5 test
# chage -l test
Последний раз пароль был изменён : дек 27, 2023
Срок действия пароля истекает : янв 01, 2024
Пароль будет деактивирован через : янв 11, 2024
Срок действия учётной записи истекает : никогда
Минимальное количество дней между сменой пароля : -1
Максимальное количество дней между сменой пароля : 5
Количество дней с предупреждением перед деактивацией пароля : -1
Примечание
PASS_MAX_DAYS
в файле /etc/login.defs
.
Предупреждение
Предупреждение
/etc/security/opasswd
, в который пользователи должны иметь доступ на чтение и запись. При этом они могут читать хэши паролей остальных пользователей. Не рекомендуется использовать на многопользовательских системах.
/etc/security/opasswd
и дайте права на запись пользователям:
#install -Dm0660 -gpw_users /dev/null /etc/security/opasswd
#chgrp pw_users /etc/security
#chmod g+w /etc/security
/etc/pam.d/system-auth-local-only
таким образом, чтобы он включал модуль pam_pwhistory после первого появления строки с паролем:
password required pam_passwdqc.so config=/etc/passwdqc.conf password required pam_pwhistory.so debug use_authtok remember=10 retry=3
/etc/security/opasswd
будут храниться последние 10 паролей пользователя (содержит хэши паролей всех учетных записей пользователей) и при попытке использования пароля из этого списка будет выведена ошибка:
Password has been already used. Choose another.
enforce_for_root
:
password required pam_pwhistory.so use_authtok enforce_for_root remember=10 retry=3
usermod
:
# usermod
-G audio,rpm,test1 test1
# usermod
-l test2 test1
usermod -L
test2
и usermod -U
test2
соответственно временно блокируют возможность входа в систему пользователю test2 и возвращают всё на свои места.
chpasswd
. На стандартный вход ей следует подавать список, каждая строка которого будет выглядеть как имя:пароль
.
userdel
.
userdel test2
удалит пользователя test2 из системы. Если будет дополнительно задан параметр -r
, то будет уничтожен и домашний каталог пользователя. Нельзя удалить пользователя, если в данный момент он еще работает в системе.
pstree
.
/etc/inittab
, откуда вызываются другие программы и скрипты на определенном этапе запуска.
service
и chkconfig
продолжат работать в мире systemd практически без изменений. Тем не менее, в этой таблице показано как выполнить те же действия с помощью встроенных утилит systemctl.
Таблица 55.1. Команды управления службами
Команды Sysvinit
|
Команды Systemd
|
Примечания
|
---|---|---|
service frobozz start
|
systemctl start frobozz.service
|
Используется для запуска службы (не перезагружает постоянные)
|
service frobozz stop
|
systemctl stop frobozz.service
|
Используется для остановки службы (не перезагружает постоянные)
|
service frobozz restart
|
systemctl restart frobozz.service
|
Используется для остановки и последующего запуска службы
|
service frobozz reload
|
systemctl reload frobozz.service
|
Если поддерживается, перезагружает файлы конфигурации без прерывания незаконченных операций
|
service frobozz condrestart
|
systemctl condrestart frobozz.service
|
Перезапускает службу, если она уже работает
|
service frobozz status
|
systemctl status frobozz.service
|
Сообщает, запущена ли уже служба
|
ls /etc/rc.d/init.d/
|
systemctl list-unit-files --type=service (preferred)
ls /lib/systemd/system/*.service /etc/systemd/system/*.service
|
Используется для отображения списка служб, которые можно запустить или остановить.
Используется для отображения списка всех служб.
|
chkconfig frobozz on
|
systemctl enable frobozz.service
|
Включает службу во время следующей перезагрузки, или любой другой триггер
|
chkconfig frobozz off
|
systemctl disable frobozz.service
|
Выключает службу во время следующей перезагрузки, или любой другой триггер
|
chkconfig frobozz
|
systemctl is-enabled frobozz.service
|
Используется для проверки, сконфигурирована ли служба для запуска в текущем окружении
|
chkconfig --list
|
systemctl list-unit-files --type=service(preferred)
ls /etc/systemd/system/*.wants/
|
Выводит таблицу служб. В ней видно, на каких уровнях загрузки они (не)запускаются
|
chkconfig frobozz --list
|
ls /etc/systemd/system/*.wants/frobozz.service
|
Используется, для отображения на каких уровнях служба (не)запускается
|
chkconfig frobozz --add
|
systemctl daemon-reload
|
Используется, когда вы создаете новую службу или модифицируете любую конфигурацию
|
journalctl
. По умолчанию, больше не требуется запуск службы syslog.
journalctl
с разными ключами:
journalctl
-b
— покажет сообщения только с текущей загрузки;
journalctl
-f
— покажет только последние сообщения.
journalctl
_PID
=1 — покажет сообщения первого процесса (init).
journalctl
. Для этого используйте команду man journalctl
.
man
(сокращение от manual). Каждая страница руководства посвящена одному объекту системы. Для того чтобы прочесть страницу руководства по программе, необходимо набрать man
название_программы. К примеру, если вы хотите узнать, какие опции есть у команды date
, вы можете ввести команду:
$
man
date
man
осуществляется командой apropos
. Если вы точно не знаете, как называется необходимая вам программа, то поиск осуществляется по ключевому слову, к примеру, apropos
date или при помощи ввода слова, обозначающего нужное действие, после команды man
-k
(например, man
-k
copy). Слово, характеризующее желаемое для вас действие, можно вводить и на русском языке. При наличии русского перевода страниц руководства man
результаты поиска будут выведены на запрашиваемом языке.
man
запускает программу постраничного просмотра текстов. Страницы перелистывают пробелом, для выхода из режима чтения описания команд man
необходимо нажать на клавиатуре q. Команда man
man
выдаёт справку по пользованию самой командой man
.
man
по умолчанию будет отображать их на русском языке.
info
info
. Команда info
, введённая без параметров, предлагает пользователю список всех документов info, установленных в системе.
/usr/share/doc
— место хранения разнообразной документации.
/usr/share/doc/имя_пакета
. Например, документация к пакету file-5.44 находится в /usr/share/doc/file-5.44
. Для получения полного списка файлов документации, относящихся к пакету, воспользуйтесь командой rpm
-qd
имя_установленного_пакета.
README
, FAQ
, TODO
, СhangeLog
и другие. В файле README
содержится основная информация о программе — имя и контактные данные авторов, назначение, полезные советы и пр. FAQ
содержит ответы на часто задаваемые вопросы; этот файл стоит прочитать в первую очередь, если у вас возникли проблемы или вопросы по использованию программы, поскольку большинство проблем и сложностей типичны, вполне вероятно, что в FAQ
вы тут же найдёте готовое решение. В файле TODO
записаны планы разработчиков на реализацию той или иной функциональности. В файле СhangeLog
записана история изменений в программе от версии к версии.
rpm
-qi
имя_установленного_пакета. В информационном заголовке соответствующего пакета, среди прочей информации, будет выведена искомая ссылка.