71 команда linux на все случаи жизни. ну почти
Содержание:
Как использовать команду su
Общий синтаксис suкоманды выглядит следующим образом:
su ]
Когда вызывается без какой-либо опции, поведение по умолчанию suдля запуска интерактивной оболочки от имени пользователя root:
su
Вам будет предложено ввести пароль пользователя root, и в случае аутентификации пользователь, выполняющий команду, временно станет пользователем root.
Переменные среды сеанса shell ( SHELL) и home ( HOME) задаются из записи замещающего пользователя /etc/passwd, и текущий каталог не изменяется.
Чтобы подтвердить, что пользователь изменился, используйте команду whoami:
whoami
Команда выведет имя пользователя, выполняющего текущий сеанс оболочки:
root
Наиболее часто используемый вариант при вызове suесть -, -l, –login. Это делает оболочку оболочкой входа в систему со средой, очень похожей на реальную регистрацию, и изменяет текущий каталог :
su -
Если вы хотите запустить еще одну оболочку вместо одной , определенной в файле passwd, используйте -s, вариант –shell. Например, чтобы переключиться на root и запустить оболочку zsh, вы должны набрать:
su -s /usr/bin/zsh
Для того, чтобы сохранить всю окружающую среду ( HOME, SHELL, USER, и LOGNAME) вызывающего пользователя использовать -p, вариант –preserve-environment.
su -p
При использовании параметра -, -p игнорируется.
Если вы не хотите, чтобы запустить интерактивную оболочку и только запустить команду в качестве заменителя пользователя, используйте -c, вариант command. Например, чтобы вызвать команду ps от имени пользователя root, введите:
su -c root
Чтобы переключиться на другую учетную запись пользователя, передайте имя пользователя в качестве аргумента su. Например, чтобы переключиться на пользователя andreyex, вы должны набрать:
su andreyex
Разрешения Linux
Прежде чем идти дальше, давайте кратко объясним модель разрешений Linux.
В Linux каждый файл связан с владельцем и группой и ему назначены права доступа для трех разных классов пользователей:
- владелец файла.
- члены группы.
- все остальные.
Существует три типа разрешений, которые применяются к каждому классу:
- разрешение на чтение.
- разрешение на запись.
- разрешение на выполнение.
Эта концепция позволяет вам указать, каким пользователям разрешено читать файл, записывать в файл или выполнять файл.
Чтобы просмотреть права доступа к файлу, используйте команду ls:
ls -l dirname
drwxr-xr-x 12 andreyex users 4.0K Apr 8 20:51 dirname | | | | | | | | | | | | +-----------> Group | | | | +-------------------> Owner | | | +----------------------------> Others Permissions | | +-------------------------------> Group Permissions | +----------------------------------> Owner Permissions +------------------------------------> File Type
Первый символ представляет тип файла, который может быть обычным file ( -), directory ( d), символической ссылкой ( l) или любым другим специальным типом файла.
Следующие девять символов представляют разрешения, три набора по три символа в каждом. Первый набор показывает права владельца, второй – права группы, а последний набор – права доступа для всех остальных.
Символ r с восьмеричным значением 4 стоит для чтения, w с восьмеричным значением 2 для записи, x с восьмеричным значением 1 для разрешения на выполнение и ( -) с восьмеричным значением 0 для без разрешений.
Есть также три типа разрешений специального файла: setuid, setgid и Sticky Bit.
В приведенном выше примере ( rwxr-xr-x) означает, что владелец имеет разрешения на чтение, запись и выполнение ( rwx), группа и другие пользователи имеют разрешения на чтение и выполнение.
Если мы представим права доступа к файлу с помощью числовой записи, мы подойдем к числу 755:
- Владелец: rwx=4+2+1 = 7
- Группа: r-x=4+0+1 = 5
- Другое: r-x=4+0+1 = 5
Когда они представлены в цифровом формате, разрешения могут иметь три или четыре восьмеричных цифры (0-7). Первая цифра представляет специальные разрешения, а если она опущена, это означает, что никаких специальных разрешений для файла не установлено. В нашем случае так 755 же, как 0755. Первая цифра может быть комбинацией 4 для setuid, 2 для setgidи 1 для Sticky Bit.
Права доступа к файлам можно изменить с помощью команды chmod, а владельца – с помощью команды chown.
Goodbye IPv4. Hello IPv6.
It’s called IPv6 and it offers a maximum number of IP address for today and for the future.
Whereas IPv4 supports a maximum of approximately 4.3 billion unique IP addresses, IPv6 supports, in theory, a maximum number that will never run out.
A theoretical maximum of 340,282,366,920,938,463,463,374,607,431,768,211,456. To be exact. In other words, we will never run out of IP addresses again.
An IPv6 address consists of eight groups of four hexadecimal digits. If a group consists of four zeros, the notation can be shortened using a colon to replace the zeros. Here’s an example IPv6 address:
2001:0db8:85a3:0000:0000:8a2e:0370:7334
If you have question about IPv6 and want to learn more, visit our Learning Center, where you can read an IPv6 Q&A for everybody.
Should you hide your IP address?
Your IP address is your passport to the Internet. But it also gives away your location and is used to profile your individual online activity.
That’s why you might consider hiding it.
Can you do that?
Yes! And you can learn how right here.
Получить SID локального пользователя
Чтобы получить SID локальной учетной записи на данной машине, можно воспользоваться утилитой wmic, обращающейся к WMI хранилищу. Для локального пользователя test_user команда будет такой:
wmic useraccount where name=’test_user’ get sid
1 | wmic useraccount where name=’test_user’get sid |
В этом примере SID пользователя — S-1-5-21-1175651296-1316126944-203051354-1005
Если нужно узнать SID текущего пользователя, выполните такую команду:
wmic useraccount where name=’%username%’ get sid
1 | wmic useraccount where name=’%username%’get sid |
На PowerShell скрипт, выдающий тот же результат можно реализовать с помощью двух классов SecurityIdentifier и NTAccount.
$objUser = New-Object System.Security.Principal.NTAccount(«LOCAL_USER_NAME»)
$strSID = $objUser.Translate()
$strSID.Value
1 |
$objUser=New-ObjectSystem.Security.Principal.NTAccount(«LOCAL_USER_NAME») $strSID=$objUser.Translate(System.Security.Principal.SecurityIdentifier) $strSID.Value |