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