Ssh сменить владельца файла
Обновлено: 04.07.2024
man ИмяКоманды — помощь по работе с командой
Пример: man find — выведет информацию о команде find
Выход из мануала через ssh-клиент — клавиша «Pause/Break»
Команды с файлами
ls — список файлов и каталогов
ls -al — форматированный список со скрытыми каталогами и файлами
ls -lia — вывод списка всех файлов и папок в текущей директории отсортированных по алфавиту с отображением размеров директорий и файлов.
cd dirname — сменить директорию на dirname (cd — change directory)
— смена директории на домашний каталог, а также команда без «
» (тильды) делает то же самое в большинстве шелов
pwd — показать текущий каталог
— показать каталог для текущего пользователя
mkdir dir — создать каталог dir
rm file — удалить file
rm -r dir — удалить каталог dir
rm -f file — удалить форсированно file
rm -rf dir — удалить форсированно каталог dir * (без вопросов удалит каталог и все что в нем хранится)
Резервное удаленное копирование данных между двумя шеллами (ssh)
Опции rsync:
-a режим архива, при использовании заменяет несколько ключей (-rlptgoD)
-r рекурсивно. Копирует все файлы, включая вложенные каталоги
-l при копировании сохраняет символические ссылки
-p сохраняет права на файлы
-t сохраняет время изменения файлов
-g сохраняет группу файлов
-o сохраняет владельца файлов (работает только из под root)
-D сохраняет файлы устройств и специальны файлы
-v показывает название файлов при копировании
-z сжатие файлов при копировании
-e ssh использовать при копировании ssh
—progress показывает прогресс выполнения копирования
—bwlimit=KBPS ограничивает скорость передачи файлов
cp file1 file2 — скопировать file1 в file2
cp -r dir1 dir2 — скопировать dir1 в dir2; так же создаст каталог dir2, если его не существует
cp -rp dir1 dir2 — скопировать dir1 в dir2; так же создаст каталог dir2, если его не существует и оставит все прежние права старой папки
mv file1 file2 — переименовать или переместить file1 в file2. если file2 существующий каталог — переместить file1 в каталог file2
ln -s file link — создать символическую ссылку link к файлу file
touch file — создать file
more file — вывести содержимое file
head file — вывести первые 10 строк file
tail file — вывести последние 10 строк file
tail -f file — вывести содержимое file по мере роста, начинает с последних 10 строк
view file — вывести файл на экран
Процессы
ps — вывести ваши текущие активные процессы
ps -aux — вывести все процессы (от рута)
top — показать все запущенные процессы
kill pid — убить процесс с id pid
killall proc — убить все процессы с именем proc
bg — список остановленных и фоновых задач; продолжить выполнение остановленной задачи в фоне
fg — выносит на передний план последние задачи
fg n — вынести задачу n на передний план
Процессы и сервисы
netstat -nlp — смотрим какие порты открыты
netstat -tulpn | grep :80 — смотрим что занимает 80 порт
fuser 7000/tcp — найти PID процессов открывших 7000-й tcp порт
ls -l /proc/3813/cwd — Найти текущий рабочий каталог процесса bittorrent или pid 3813
pwdx 3813 — тоже самое что и «ls -l /proc/3813/cwd»
ps aux | grep 3813 — узнать владельца процесса с PID 3813
lsof -i :80 — что висит на 80 порту
Права доступа на файлы
chown root /filename — смена владельца файла/директории /filename на root
chown root:group /filename смена владельца файла/директории /filename на root и смена группы на group
chown -hR root /filename смена владельца файла/директории /filename на root и всех находящихся в ней файлов на root
Дополнительные опции: man chown.
chmod user file — сменить права file на user, раздельно для пользователя, группы и для всех добавлением:
? 1 — исполнение (x) Примеры:
chmod 777 — чтение, запись, исполнение для всех (потенциальная угроза безопасности)
chmod 755 — rwx для владельца, rx для группы и остальных.
chmod -R 755 ./folder — смена прав для файлов в директории и её поддиректориях
Дополнительные опции: man chmod.
SSH
ssh user@host — подключится к host как user
ssh -p port user@host — подключится к host на порт port как user
ssh-copy-id user@host — добавить ваш ключ на host для user чтобы включить логин без пароля и по ключам
Поиск
grep pattern files — искать pattern в files
grep -r pattern dir — искать рекурсивно pattern в dir
command | grep pattern — искать pattern в выводе command
locate file — найти все файлы с именем file
find | grep text — найти текст text во всех файлах текущей директории
find / -name vasy\* — найти файлы и папки с названием vasy*
grep -rl ‘что_ищем’ /путь — найти файлы в теле которых ‘что_ищем’
Системная информация
date — вывести текущую дату и время
cal — вывести календарь на текущий месяц
uptime — показать текущий аптайм
w — показать пользователей онлайн
whoami — имя, под которым вы залогинены
finger user — показать информацию о user
cat /proc/cpuinfo — информация ЦПУ
cat /proc/meminfo — информация о памяти
man command — показать мануал для command
df — показать инф. о использовании дисков
du — вывести «вес» текущего каталога
du -sh cколько весит папка?
du -sh * | less -F сколько весят папки и файлы директории для просмотра длинного списка
du -shm *| sort -nr | less -F сколько весят папки и файлы директории показ в Мб и сортировка по уменьшению для просмотра длинного списка
free — использование памяти и swap
unamе -a — информация о ядре
whereis app — возможное расположение программы app
which app — какая app будет запущена по умолчанию
Архивация
tar cf file.tar files — создать tar-архив с именем file.tar содержащий files
tar xf file.tar — распаковать file.tar
tar czf file.tar.gz files — создать архив tar с сжатием Gzip
tar xzf file.tar.gz — распаковать tar с Gzip
tar cjf file.tar.bz2 — создать архив tar с сжатием Bzip2
tar xjf file.tar.bz2 — распаковать tar с Bzip2
gzip file — сжать file и переименовать в file.gz
gzip -d file.gz — разжать file.gz в file
Сеть
ping host — пропинговать host и вывести результат
whois domain — получить информацию whois для domain
dig domain — получить DNS информацию domain
dig -x host — реверсивно искать host
wgеt file — скачать file
wgеt -c file — продолжить остановленную закачку
ifconfig — вывод сетевых интерфейсов и подключений
ifconfig -a — Отображение всех интерфейсов, включая отключенные
ifconfig eth0 down — выключаем интерфейс eth0
ifconfig eth0 up — поднимаем (включаем) интерфейс eth0
Установка пакетов
Установка из исходников:
Установка собранных пакетов:
dpkg -i pkg.deb — установить пакет (Debian, Ubuntu)
rpm -Uvh pkg.rpm — установить пакет (RPM RedHatm CentOS)
Автоматизация работы
cron — выполнение заданной команды в определенное время
Клавиатурные сочетания
Ctrl+C — завершить текущую команду
Ctrl+Z — остановить текущую команду, продолжть с fg на переднем плане или bg в фоне
Основа философии Linux - все объекты операционной системы - это файлы, для предоставления доступа к тем или иным возможностям системы мы просто даем доступ пользователю к нужным файлам или убираем. Я более подробно рассказывал обо всех правах в статье права доступа к файлам в Linux, здесь же скажу только что у каждого файла есть три группы прав: для владельца, группы и всех остальных.
При создании файла ему тот пользователь, от имени которого он был создан становится его владельцем, а группой устанавливается основная группа владельца. Но владельца файла и группу можно менять, для этого используются команды chown и chgrp. В этой статье будет рассмотрена команда chown linux, а также основные примеры её использования.
Команда chown Linux
1. Синтаксис и опции
Синтаксис chown, как и других подобных команд linux очень прост:
$ chown пользователь опции /путь/к/файлу
В поле пользователь надо указать пользователя, которому мы хотим передать файл. Также можно указать через двоеточие группу, например, пользователь:группа. Тогда изменится не только пользователь, но и группа. Вот основные опции, которые могут вам понадобиться:
Утилита имеет ещё несколько опций, но это самые основные и то большинство из них вам не понадобится. А теперь давайте посмотрим как пользоваться chown.
2. Использование chown
Например, у нас есть несколько папок dir и их владелец пользователь sergiy:
Давайте изменим владельца папки dir1 на root:
chown root ./dir1
Если вы хотите поменять сразу владельца и группу каталога или файла запишите их через двоеточие, например, изменим пользователя и группу для каталога dir2 на root:
chown root:root ./dir2
Если вы хотите чтобы изменения применялись не только к этому каталогу, но и ко всем его подкаталогам, добавьте опцию -R:
chown -R root:root ./dir3
Дальше давайте изменим группу и владельца на www-data только для тех каталогов и файлов, у которых владелец и группа root в каталоге /dir3:
chown --from=root:root www-data:www-data -cR ./
Для обращения к текущему каталогу используйте путь ./. Мы его использовали и выше. Далее указываем нужную группу с помощью опции --from и просим утилиту выводить изменения, которые она делает в файловой системе с помощью опции -c.
Выводы
Нет похожих записей
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.
В этой статье мы расскажем про SSH: что это такое, как подключиться к серверу по SSH, как создать папку и архив, а также как по SSH изменить права на файлы и папки.
SSH – это протокол передачи данных, позволяющий производить безопасное и защищённое управление операционной системой и данными.
Подключение по SSH возможно на всех тарифных планах виртуального хостинга, кроме тарифа «Host-Lite». Если у вас заказан тарифный план «Host-Lite», повысьте тариф, и у вас появится возможность соединения по SSH Как повысить тарифный план хостинга.
Если у вас заказан Windows хостинг или Windows VPS, то подключение по SSH невозможно. Управление услугой хостинга происходит через панель управления, а к Windows VPS можно подключиться с помощью RDP.Как подключиться к серверу по SSH
В зависимости от операционной системы, установленной на вашем домашнем компьютере (не путайте с ОС хостинга), для SSH подключения к серверу Linux-хостинга возможны следующие варианты:
- если на вашем компьютере установлена ОС Windows, то подключение происходит через Putty,
- для ОС Linux и macOS на компьютере доступно подключение к SSH через терминал.
Подключение по SSH Windows:
На странице с основными настройками сеанса PuTTY, в поле «Host Name» введите IP-адрес сервера.
Если вы уже делегировали домен на сервер, вместо IP-адреса можно указать домен. Также в качестве хоста можно использовать технологический домен.
При первом подключении к серверу появится окно «Предупреждение безопасности PuTTY». Нажмите Да:
В открывшемся окне PuTTY введите ваш логин услуги хостинга вида «u1234567». Нажмите Enter. Затем введите ваш пароль от услуги хостинга и нажмите Enter. В целях безопасности вводимый пароль не отображается на экране в виде символов. Набирая пароль, вы не увидите на экране ни самого пароля, ни звёздочек.
Чтобы вставить скопированный логин и пароль в окно PuTTy, нажмите Shift + Insert.
Важно: если вы несколько раз подряд ввели неправильный пароль и сервер заблокировал соединение по SSH (если PuTTY не подключается по SSH), обратитесь в техническую поддержку или подождите 2 часа. По истечении этого времени блокировка снимается автоматически.
Готово, как только вы подключитесь по SSH, вы окажетесь в домашнем каталоге вашего хостинга. Консольные команды Linux представлены по ссылке. Обратите внимание: многие из этих команд выполнить на виртуальном хостинге не получится (установка и удаление пакетов, монтирование файловых систем и др.), так как у вас нет root-доступа.
Для ОС Linux доступ по SSH осуществляется через терминал, который уже предустановлен в самой системе.
- в Unity (Ubuntu): «Главное меню» — в поисковой строке введите слово «Терминал». Либо просто нажмите комбинацию клавиш: Ctrl+Alt+T,
- в Xfce (Xubuntu): «Главное меню» — «Приложения» — «Система» — «Терминал»,
- в KDE (Kubuntu): «Главное меню» — «Приложения» — «Система» — «Терминал».
- u1234567 — логин учётной записи хостинга (Как узнать логин и пароль услуги хостинга?,
- 123.123.123.123 — IP-адрес сервера (Как узнать IP-адрес сервера?).
Готово, вы успешно завершили SSH-подключение через терминал.
Запустите терминал. Для этого нажмите Cmd + Пробел, введите в поисковой строке Терминал и нажмите Enter.Нажмите Enter.
Если подключение к устройству происходит впервые, то появится предупреждение о том, что ключ сервера не кешируется в реестре. Введите Yes и нажмите Enter:
Введите пароль учетной записи.
Обратите внимание, в целях безопасности пароль, который вы вводите, не отображается на экране ни в виде самого пароля, ни в виде звёздочек:
Готово, вы подключились к виртуальному серверу по SSH. Чтобы сбросить подключение, введите команду exit или закройте терминал.
Можно ли создать дополнительного SSH-пользователя
На Hosting Linux подключение по SSH возможно только под основным логином хостинга (вида u1234567). Создать дополнительного пользователя SSH нельзя.
Как отключить доступ по SSH
Чтобы отключить SSH-доступ на хостинге, напишите заявку в службу поддержки. В заявке сообщите ваш логин хостинга (вида u1234567), для которого необходимо отключить доступ по SSH.
Как создать архив по SSH
Создание архива tar.gz
- Данная команда создаст архив папки path/folder-name/. Название архива — name.tar.gz,
- все файлы будут сжаты при помощи gzip,
- в процессе создания архива будет показан процесс архивации. Если данная информация вам не нужна, уберите ключ «v» из команды.
Разархивация происходит при помощи команды:
Создание архива zip
В результате команды из примера будет создан архив папки /var/log со всем её содержимым. Имя созданного архива: log.zip. Разархивировать можно будет при помощи команды:
Как создать или удалить папку по SSH
Чтобы создать папку, подключитесь к серверу по SSH и используйте команду:
Где new_folder_name — имя создаваемой папки.
После подключения по SSH удалить папку можно с помощью команды:
Где folder_name — имя удаляемой папки. Ключ —r делает рекурсивное удаление, то есть удаляет папку со всеми вложенными в неё папками и файлами.
Как изменить права на файлы и папки по SSH
Чтобы настроить права доступа к отдельному файлу:
Где /var/www/file_name — полный путь до вашего файла (/полный-путь-до-корневой-папки-сайта/сам-файл).
Готово, права на файлы/папки будут изменены.
Чтобы рекурсивно настроить доступ ко всем папкам и файлам на вашем сайте:
Где dir_name — полный путь до корневой папки сайта (Как узнать корневую папку сайта?).
Первая команда изменит права для всех директорий внутри указанной на 755. Вторая — для файлов внутри указанной директории на 644.
Готово, права на файлы/папки будут изменены.
В качестве альтернативного способа вы можете использовать команду, чтобы сначала задать права всем файлам:
А затем назначить права 755 только на папки:
Где dir_name — полный путь до корневой папки сайта (Как узнать корневую папку сайта?).
Как запустить Midnight Commander
Midnight Commander — это файловый менеджер.
Чтобы его запустить:
Введите в консоли mc в консоли и нажмите Enter.Как использовать кириллицу в терминале Linux
Если у вас ОС Linux, то при подключении к серверу по SSH вы можете использовать в терминале не только латиницу, но и кириллицу.
Если вы хотите использовать кириллицу в течение одного сеанса SSH, то после подключения введите в терминале команду:
Если вы хотите использовать кириллицу постоянно, то нужно внести изменения файл в .bashrc. Для этого после подключения по SSH:
На некоторых VPS есть ограничения по количеству файлов, помимо их общего размера, и чтобы выяснить сколько же их:
покажет сколько занято всего
df -i
покажет сколько файлов в определенных папках
ls -R /var/www/*/data/mod-tmp | wc -l
удалить файлы
find /var/www/*/data/mod-tmp -name "sess_*" -type f -exec rm <> ;
информация о свободном месте на дисках
df
или (в гигабайтах)
df -h
или (в мегабайтах)
df -m
Если мы видим что жесткий забит до отказа, то нужно посмотреть в какой именно директории много файлов
Можно с сортировкой по размеру (в байтах)cd /var && du -sk * | sort -rn
свободная память и загрузка процессора
vmstat
различные параметры за последние сутки
sar
отобазить список папок и файлов текущего каталога
ls
сменить папку на xx_dir
cd xx_dir
показать текущее местоположение
pwd
перегрузить сервер
reboot
запуск apache
apachectl startssl
остановка apache
apachectl stop
перезапуск mysql
/usr/local/etc/rc.d/mysql-server restart
посмотреть свободную память
free -m
mysqldump -u имя_пользователя_БД -pпароль_пользователя_БД имя_бд > /полный/путь/дамп.sql - создание дампа дамп.sql
mysql -u имя_пользователя_БД -pпароль_пользователя_БД -D имя_бд < /полный/путь/дамп.sql - заливка дампа дамп.sql в базу данных mysql
cd /путь/ - перейти в каталог /путь/
Как массово сменить права на файлы в разных папках через ssh
chmod -R xxx file
где -r — рекурсивно, т.е. включая все папки и файлы в указанной папке
ххх = набор прав для доступа к файлу/папке (0555, 0777 и пр.)
file = папка или файл. Для смены массово прав по всему домену нужно в данном случае указывать именно самую верхнуюю папку (/published/ или /www/ и т.д.)
Примеры:
проставить права 644 только на файлы:
find /path/to/dir -type f -exec chmod 0644 <> ;
проставить права 755 только на каталоги:
find /path/to/dir -type d -exec chmod 0755 <> ;
man ИмяКоманды — помощь по работе с командой
Пример: man find — выведет информацию о команде find
Выход из мануала через ssh-клиент — клавиша «Pause/Break»
ls — список файлов и каталогов
ls -al — форматированный список со скрытыми каталогами и файлами
ls -lia — вывод списка всех файлов и папок в текущей директории отсортированных по алфавиту с отображением размеров директорий и файлов.
cd dirname — сменить директорию на dirname (cd — change directory)
cd
— смена директории на домашний каталог, а также команда без «
» (тильды) делает то же самое в большинстве шелов
pwd — показать текущий каталог
pwd
ps — вывести ваши текущие активные процессы
ps -aux — вывести все процессы (от рута)
top — показать все запущенные процессы
kill pid — убить процесс с id pid
killall proc — убить все процессы с именем proc
bg — список остановленных и фоновых задач; продолжить выполнение остановленной задачи в фоне
fg — выносит на передний план последние задачи
fg n — вынести задачу n на передний план
chown root /filename — смена владельца файла/директории /filename на root
chown root:group /filename смена владельца файла/директории /filename на root и смена группы на group
chown -hR root /filename смена владельца файла/директории /filename на root и всех находящихся в ней файлов на root
Дополнительные опции: man chown.
chmod user file — сменить права file на user, раздельно для пользователя, группы и для всех добавлением:
? 4 — чтение (r)
? 2 — запись (w)
? 1 — исполнение (x) Примеры:
chmod 777 — чтение, запись, исполнение для всех (потенциальная угроза безопасности)
chmod 755 — rwx для владельца, rx для группы и остальных.
Дополнительные опции: man chmod.
ssh user@host — подключится к host как user
ssh -p port user@host — подключится к host на порт port как user
ssh-copy-id user@host — добавить ваш ключ на host для user чтобы включить логин без пароля и по ключам
grep pattern files — искать pattern в files
grep -r pattern dir — искать рекурсивно pattern в dir
command | grep pattern — искать pattern в выводе command
locate file — найти все файлы с именем file
find | grep text — найти текст text во всех файлах текущей директории
find / -name vasy* — найти файлы и папки с названием vasy*
grep -rl ‘что_ищем’ /путь — найти файлы в теле которых ‘что_ищем’
date — вывести текущую дату и время
cal — вывести календарь на текущий месяц
uptime — показать текущий аптайм
w — показать пользователей онлайн
whoami — имя, под которым вы залогинены
finger user — показать информацию о user
cat /proc/cpuinfo — информация ЦПУ
cat /proc/meminfo — информация о памяти
man command — показать мануал для command
df — показать инф. о использовании дисков
du — вывести «вес» текущего каталога
du -sh cколько весит папка?
free — использование памяти и swap
unamе -a — информация о ядре
whereis app — возможное расположение программы app
which app — какая app будет запущена по умолчанию
tar cf file.tar files — создать tar-архив с именем file.tar содержащий files
tar xf file.tar — распаковать file.tar
tar czf file.tar.gz files — создать архив tar с сжатием Gzip
tar xzf file.tar.gz — распаковать tar с Gzip
tar cjf file.tar.bz2 — создать архив tar с сжатием Bzip2
tar xjf file.tar.bz2 — распаковать tar с Bzip2
gzip file — сжать file и переименовать в file.gz
gzip -d file.gz — разжать file.gz в file
Установка из исходников:
./configure
make
make install
Установка собранных пакетов:
dpkg -i pkg.deb — установить пакет (Debian, Ubuntu)
rpm -Uvh pkg.rpm — установить пакет (RPM RedHatm CentOS)
cron — выполнение заданной команды в определенное время
ps aux |grep 'part_of_the_name_of_your_script'|awk '' |xargs kill -9 <> - убить все процессы скрипта, где part_of_the_name_of_your_script - часть его имени
Ctrl+C — завершить текущую команду
Ctrl+Z — остановить текущую команду, продолжть с fg на переднем плане или bg в фоне
Ctrl+D — разлогиниться, тоже самое, что и exit
Ctrl+W — удалить одно слово в текущей строке
Ctrl+U — удалить строку
!! — повторить последнюю команду
exit — выход
Читайте также: