6 заметок с тегом

CentOS

Команды управления пользователями в Linux

25 мая, 12:22

Основные команды управления пользователями в Linux:

useradd — регистрирует нового пользователя или изменяет информацию по умолчанию о новых пользователях;
usermod — изменяет учётную запись пользователя;
userdel — удаляет учётную запись и файлы пользователя;
passwd — изменяет пароль пользователя.

Подробно о useradd

useradd test — Создаем пользователя test (без домашнего каталога и без пароля).
useradd -m -d /home/test test — Создаем пользователя test с домашним каталогом /home/test.

-m — создать домашний каталог пользователя
-d — домашний каталог новой учётной записи

Примечание: удобство использования ключей -m и -d в том, что автоматически созданный каталог уже будет иметь необходимые права.
Если каталог вы будете создавать отдельно, то придется менять владельца командой chown и возможно разрешения по умолчанию командой chmod.

useradd -g testgroup -m -d /home/test -s /bin/bash test — Создаем пользователя test с домашним каталогом /home/test, оболочкой /bin/bash
passwd test — пароль

-g — имя или ID первичной группы новой учётной записи
-s — оболочка новой учётной записи

Примечание: если вы создаете учетную запись для служебных задач, то установить оболочку /bin/false.

Подробно о usermod

usermod -l test02 test01 — Смена имени пользователя test01 на test02.

-l Имя пользователя будет изменено с test01 на test02.
Больше ничего не меняется. В частности, вероятно, должно быть изменено имя домашнего каталога и почтового ящика.

usermod -g testgroup02 test02 — Изменение первичной группы пользователя test02 на группу testgroup02.

-g — Имя или числовой идентификатор новой первичной группы пользователя.
Группа с таким именем должна существовать. Все файлы в домашнем каталоге пользователя, принадлежавшие предыдущей первичной группе пользователя, будут принадлежать новой группе. Группового владельца файлов вне домашнего каталога нужно изменить вручную.

usermod -d /home/test02 -m test02 — Создание нового домашнего каталога /home/test02 пользователя test02 и перенос данных из старого в новый.

-d — Домашний каталог нового пользователя.
Если указан параметр -m, то содержимое текущего домашнего каталога будет перемещено в новый домашний каталог, который будет создан, если он ещё не существует.
-m — Переместить содержимое домашнего каталога в новое место. Этот параметр можно использовать только с параметром -d (или —home).
Команда usermod пытается изменить владельцев файлов и копирует права, ACL и расширенные атрибуты, но после неё всё равно могут потребоваться некоторые ручные действия.

Примечание: Вы должны убедиться, что от указанного пользователя не запущено никаких процессов, если при выполнении этой команды изменяется числовой пользовательский ID, имя пользователя или домашний каталог пользователя. В Linux команда usermod выполняет такую проверку, но на других архитектурах проверяется только присутствие пользователя в системе согласно данным utmp. Вы должны вручную изменить владельца всех файлов crontab или заданий at. Вы должны сделать все изменения NIS на сервере NIS самостоятельно.

Подробно о userdel

userdel test — Удаление пользователя test. Домашний каталог и файлы в нем останутся нетронутыми.

userdel -r test — Удаление пользователя test вместе с домашним каталогом и файлами в нем, а также почтового ящика, если он есть.

Подробно о passwd

passwd -S — Отобразить состояние текущей учетной записи (имя, инф. о пароле, дата последнего изменения пароля, минимальный срок, максимальный срок, период выдачи предупреждения, период неактивности пароля).

passwd -S -a — Отображение состояния всех учетных записей.

passwd test — Задать пароль для учетной записи test

Обычный пользователь может изменить пароль только своей учётной записи, суперпользователь может изменить пароль любой учётной записи.

Дополнительные команды

id — Print user and group information for the specified USERNAME, or (when USERNAME omitted) for the current user;
groups — print the groups a user is in;
last, lastb — show listing of last logged in users.
last -n 3 root — Отобразить информацию о трех последних входах в систему пользователя root.
lastlog — выводит отчёт о последней регистрации в системе всех или указанного пользователя
logname — print user´s login name.
whoami — Print the user name associated with the current effective user ID.
mesg — control write access to your terminal.
mesg y — Включение приема сообщений от пользователей, отправленных с помощью команды write.
sudo, sudoedit — изменяет ID пользователя или делает его суперпользователем
users — print the user names of users currently logged in to the current host
w — Show who is logged on and what they are doing.
who — show who is logged on
write — send a message to another user

CentOS   Debian   Linux   passwd   useradd   userdel   usermod

Установка SSL сертификата на Apache CentOS

26 октября 2016, 11:30

Инструкция по установке SSL сертификата на Apache на сервере CentOS.

Создание запроса на сертификат (CSR) для Apache.


Подключение к хостингу по SSH
Перешли в папку с Apache

cd /etc/httpd/conf/



Создание закрытого (приватного) ключа

openssl genrsa -des3 -out private.key 2048

«Enter pass phrase for private.key» - вводим пароль для защиты
«Verifying — Enter pass phrase for private.key» - повторяем пароль

less private.key - посмотрим на готовый ключ.
Q - нажмем для выхода.



Создание запроса на сертификат (CSR)

openssl req -new -key private.key -out domain-name.csr

«Enter pass phrase for private.key» - вводим пароль



Заполняем следующие поля:


Country Name: двухсимвольный код страны согласно ISO-3166. «RU» для России.


State or Province Name: название области или региона без сокращений;


Locality Name: название города или населенного пункта;


Organization Name: название организации в латинском эквиваленте;


Organizational Unit Name: название подразделения, для которого заказывается сертификат (необязательное поле);


Common Name: полностью определенное (FQDN) доменное имя;


Email Address: контактный e-mail адрес (необязательное поле);


A challenge password: не заполняется;


An optional company name: альтернативное имя компании (не заполняется).


Посмотрим на созданный файл

openssl req -noout -text -in domain-name.csr

less domain-name.csr - откроем для копирования данных




Заказали SSL сертификат у RU-Center.


При заказе вставили созданный код с файла domain-name.csr

Подтвердили по email и по тел.


Проверка длилась 2 дня. В первый день подтвердили email, а на след. день по телефону.

Скачали сертификаты с личного кабинета RU-Center


Подключение к хостингу по SSH
Перешли в папку с Apache

cd /etc/httpd/conf/

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

Загрузили файл domain-name.crt

открыли на редактирование файл httpd.conf

Дописали пару строк к нужному домену:

SSLEngine on
SSLCertificateKeyFile /etc/httpd/conf/private.key
SSLCertificateFile /etc/httpd/conf/domain-name.crt 
SSLCACertificateFile /etc/httpd/conf/intermediate.crt 

Сохранили изменения и перезапустили Apache
/etc/init.d/httpd stop
/etc/init.d/httpd start

Нужно ввести пароль, что создавали при создании файла private.key



Готово. Сертификат установлен.


Инструкции в pdf:


создание CSR для Apache


Установка SSL сертификата для Apache

Apache   CentOS   CSR   SSL

cron

22 сентября 2016, 11:03

cron — демон (планировщик задач в UNIX-подобных операционных системах).


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

Регулярные действия описываются инструкциями, помещенными в файлы crontab и в специальные директории.

Для редактирования заданий используется утилита crontab.


Место хранения файлов:

/var/spool/cron/<user or crontab>



Добавление файла расписания:

crontab имя_файла_расписания



Вывести содержимое текущего файла расписания:

crontab -l



Удаление текущего файла расписания:

crontab -r



Для редактирования файла crontab вашего пользователя используется команда[2]:

crontab -e



Этот ключ позволяет выполнять вышеописанные действия для конкретного пользователя:

crontab -u username



Внимание: -u можно воспользоваться только запуская crontab от лица суперпользователя.


Таблица crontab состоит из 6 колонок, разделяемых пробелами или табуляторами. Первые пять колонок задают время выполнения (Минута, Час, День, Месяц, День недели), в них может находиться число, список чисел, разделённых запятыми, диапазон чисел, разделённых дефисом, символы '*' или '/'.

* * * * * выполняемая команда
- - - - -
| | | | |
| | | | ----- День недели (0 - 7) (Воскресенье =0 или =7)
| | | ------- Месяц (1 - 12)
| | --------- День (1 - 31)
| ----------- Час (0 - 23)
------------- Минута (0 - 59)



Пример файла:

# как обычно, с символа '#' начинаются комментарии
 # в качестве командного интерпретатора использовать /bin/sh
 SHELL=/bin/sh
 # результаты работы отправлять по этому адресу
 MAILTO=paul@example.org
 # добавить в PATH домашний каталог пользователя
 PATH=/bin:/usr/bin:/home/paul/bin
 
 #### Здесь начинаются задания
 # выполнять каждый день в 0 часов 5 минут, результат складывать в log/daily
 5 0 * * * $HOME/bin/daily.job >> $HOME/log/daily 2>&1
 # выполнять 1 числа каждого месяца в 14 часов 15 минут
 15 14 1 * * $HOME/bin/monthly
 # каждый рабочий день в 22:00
 0 22 * * 1-5 echo "Пора домой" | mail -s "Уже 22:00" john
 
 23 */2 * * * echo "Выполняется в 0:23, 2:23, 4:23 и т. д."
 5 4 * * sun echo "Выполняется в 4:05 в воскресенье"
 0 0 1 1 * echo "С новым годом!"
 15 10,13 * * 1,4 echo "Эта надпись выводится в понедельник и четверг в 10:15 и 13:15"
 0-59 * * * * echo "Выполняется ежеминутно"
 0-59/2 * * * * echo "Выполняется по четным минутам"
 1-59/2 * * * * echo "Выполняется по нечетным минутам"
 # каждые 5 минут
 */5 * * * * echo "Прошло пять минут"
 # каждое первое воскресенье каждого месяца. -eq 7 это код дня недели, т.е. 1 -> понедельник , 2 -> вторник и т.д.
 0 1 1-7 * * [ "$(date '+\%u')" -eq 7 ] && echo "Эта надпись выводится каждое первое воскресенье каждого месяца в 1:00"

 #Запуск по ссылке каждый день
 @daily wget -q --spider http://artana.ru >/dev/null 2>&1

 #Запуск по ссылке каждые 2 минуты
 */02 * * * * wget -q --spider http://artana.ru >/dev/null 2>&1
 
 #Запуск по ссылке в 7 утра и 10 минут
 10 7 * * * curl -s http://artana.ru >/dev/null 2>&1


CentOS   cron   Debian   Linux   Ubuntu

Linux команды

16 марта 2016, 12:33

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


Изменить пароль:

passwd - для текущего пользователя 
или
passwd имя_пользователя


Поиск содержимого в файлах, и запись результата в файл:

grep -r -n 'text' /path
grep -r -n 'search' /%path%/file.php > /%path%/rezults.txt


Поиск файла:

find / -name "index.html"

Поиск файла в текущей папке:

find . -name "index.html"

Поиск слова «base64_decode» в файлах PHP и подсветить цветом:

find /var/www/ -type f -name '*.php' | xargs grep -l "base64_decode *(" --color


Время и синхронизация, если надо:

date
ntpdate 3.centos.pool.ntp.org


Запуск Midnight Commander:

mc

Если нет, то команда для установки:

yum install mc - CentOS
apt install mc - Debian


tcpdump — Утилита позволяющая перехватывать и анализировать сетевой трафик, проходящий через компьютер, на котором запущена данная программа.
Пример запуска:

tcpdump -i eth0 -s 0 -w /var/file.cap


Утилита для скачивания файлов и сайтов:

wget -q https://URL
Пример с сайта djangoproject
wget -r -k -l 5 -p -E -nc -np https://docs.djangoproject.com/en/1.5/
-r - ходим по ссылкам (рекурсивное скачивание)
-k - преобразовываем ссылки к локальному виду
-p - скачивание ресурсов необходимых для отображения html-страницы (стили, картинки и т.д.)
-l - глубина скачивания, 0 - бесконечная вложенность ссылок
-nc - не перезаписывать существующие файлы
-np - не подниматься выше начального адреса при рекурсивной загрузке


cURL  — служебная программа командной строки, позволяющая взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL:

curl -k https://URL


dig — просмотр DNS записей домена
Если не работает, то открыть файл на редактирование /etc/resolv.conf и вставить код:

search dsitelecom.com
nameserver 8.8.8.8 
nameserver 8.8.4.4


tar — создаем не сжатый архив

// создаем архив файлов сайта
tar -zcf /var/backups/file-`date '+%d-%B-%Y'`.tar.gz /var/www/site.ru
// перенос и распаковка архива на "лету" из одного сервера на другой, команду запускаем на вторичном сервере (на котором распакуется архив)
ssh -p 22 root@ip_server cat /var/www/site.tar.gz | (cd /var/www; tar xvfz - )

gzip и bzip2 — создают сжатые архивы


Освободить RAM на сервере

sync; echo 3 > /proc/sys/vm/drop_caches


Список популярных команд

man     # читать руководство по всему
chmod   # изменить права к файлу или папке
chown   # изменить владельца и/или группу
top     # выводит список работающих в системе процессов
htop    # продвинутая top
ps -la  # Для получения основных сведений о процессах, запущенных текущем пользователем
ps -ela # Для всех пользователей 
ps -a   # Базовая информация для текущего пользователя
netcat  # позволяет передавать/принимать данные через TCP/UDP соединения
telnet  # это сетевой протокол, который используется для соединения удаленных компьютеров в сетях TCP/IP
telnet hostname port
sudo netstat -ntulp  # покажет все сервисы и прослушиваемые ими порты и ip адреса
nohup, kill
vi, mcedit # редакторы
watch
screen
df -h   # Смотреть свободное место на диске
df -i   # Смотреть свободные иноды


P.S. Список команд будет расширяться по мере необходимости.

CentOS   Debian   Linux

Решение ошибки: Starting httpd: (98)Address already in use

19 ноября 2015, 9:55

При попытке запуска Apache выдает ошибку:


Starting httpd: (98)Address already in use: make_sock: could not bind to address [::]:80
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down

При проверке ничего не выдает:

netstat -lnp | grep '0.0.0.0:80'

Решение ошибки:

killall -9 httpd
/etc/init.d/httpd start

Готово.

Apache   CentOS   httpd   Linux   ошибка
Ctrl + ↓ Ранее