D4:
id <用戶名> : 查看用戶信息
1.更改配置文件sudoers 將權限授予普通用戶
/etc/sudoers 中 或者使用 visudo 查看 sudoers
在sodoer中:
eg1: 爲khalil用戶添加 不需要輸入密碼的 useradd userdel的管理員命令
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
khalil machenike-PC=(root) NOPASSWD:/usr/sbin/useradd, /usr/sbin/userdel
* 代碼段中的machenike-PC是所運行的電腦的名字
eg2: 爲ADMIS(khalil 2330)賦予自己給予的組權限(FILE_OPER:chmod, chown)
User_Alias ADMINS = kahlil,233
Cmnd_Alias FILE_OPER = /usr/bin/chmod, /usr/bin/chown
root ALL=(ALL) ALL
ADMINS machenike-PC=(root) NOPASSWD:FILE_OPER
再輸入 sudo <命令> 可以使用被授權的命令
2.文件類型與權限:
ll下可以查看的文件信息:
文件類型權限. 鏈接數 所屬用戶 所屬組 inode編號 更改日期 名字
d rwx rwx rwx:
首字母:
link(鏈接)
direct(文件)
block(硬盤,U盤)
char(字符設備:鍵盤)
socket(套接字)
第一段:所屬用戶 user
第二段:所屬組 group
第三段:其他人 other
所有人:all
文件的:read write exec
目錄的r(查看目錄中有什麼文件)w(可以在目錄中創建刪除文件)x(可以打開)
eg: chmod u=rwx,g=rw,o=r <文件名>
chmod 764 <文件名>
*上面兩條命令是一個意思 rwx以二進制代碼表示
chmod +x <文件名> 爲文件添加一個可執行的屬性
chown -R <命令> 會同時改變目錄下所有文件的所屬
同理 有chgrp 只能改變所屬組
file <文件>:查看文件類型(ELF 即二進制文件 executable 即可執行文件)
suid只可以針對二進制文件使用L
chmod u+s touch : 文件的x變成s 使這個二進制文件所屬用戶執行效果變成超級用戶的執行效果
同理對二進制可以使用的還有g+s 取消該效果爲u-s g-s
g+s 同時可以對目錄使用: 使其下面創建的東西全部屬於root組
sticky:
o+t 只能給目錄加: 使目錄下的文件只能被所屬用戶使用 無視rwx權限
同時u+s:4 g+s:2 o+t:1
eg:chmod 2777 <文件> :改爲 g+s rwxrwxrwx 權限
umask 是 默認的目錄權限 如022 則默認mkdir的文件權限是755
爲了安全性考慮 文件的等級全部更低一級 默認touch的文件權限是644
在 /etc/profile 是配置文件
使用umask <掩碼> 命令進行改變 但是是暫時的
3.軟硬鏈接:
Hard link ------ Soft link :
ln -s <文件絕對路徑> <link文件的絕對路徑> : 製造軟鏈接(快捷方式)
ln ... : 沒有 -s 時 是製造硬鏈接(同一個文件) Tip:硬鏈接不能對目錄進行鏈接,同時也不能對不同的文件系統(分區)進行鏈接
4.服務:
vsftpd 服務 - /var/ftp/pub
httpd 服務 - /var/www/html/index.html
(共享服務與網絡服務)
VPN 代理 (上網加速器23333)
安裝兩個服務後:
在ftp/pub/中創建文件 然後鏈接 ln -s /var/ftp/pub/file /var/www/gtml/file
systemctl start vsftpd
systemctl start httpd
systemctl <start/stop/status/restart/enable/disable> <服務名>:開啓/停止/查看狀態/重啓/打開開機自啓/關閉開機自啓
dd if=/dev/zero of=/mnt/test.img bs=1024K count=10 : 劃分一塊10mb的img設備
echo $? 返回上一次命令所返回的值
df -iT 查看設備的inode使用情況
pstree 顯示進程樹
openssh : 一種遠程shell 遠程登陸:
ssh <用戶名>@<IP地址> 然後輸入用戶密碼就可以進入別人的系統了
一個瘋狂佔用inode的shell腳本:
#!/bin/bash
for((i = 1; ;i++))
do
if [ $? -eq 0 ];then
echo "this is file_$i" > /tmp/file_$i
else
exit 1
fi
done