用户管理
- 用户提权
-
su:切换身份
su - name 和 su name 的区别是环境加载不同,su -name加载的环境多。多了其中一个文件是profile 作用是设置环境变量。所以如果用su name,那么可能会遇到profile的文件没被加载 而导致环境变量不起效。
借助用户执行命令 su -www -c “命令名” -
sudo提权
在/etc/sudoers,自定义用户的权限,给指定用户指定权限。用sudo提权时,就可以使用了。
如果不想在sudo时 输入密码,可以在sudoers里配置权限NOPASSWD:ALL -
创建用户
创建用户时,会默认创建与用户名同名的组,所以可以先创建组 把用户所属该组下。一个用户有一个基本组和多个附加组。groupadd name
adduser是useradd的软链接
useradd -u(UID) -g(组) -G(附加组) -c(附加描述信息) -s(指定登录Shell窗口的类型)
创建系统用户:useradd mysql -r -M -s /sbin/nolong,-M 不建立用户家目录,-r建立系统用户 -s指定nologin使其用户无法登陆系统
-
- 修改用户
usermod
选项
# -u 指定要修改用户的UID
# -g 指定要修改用户基本组
# -G 指定要修改用户附加组,使用逗号隔开多个附加组, 覆盖原有的附加组
# -d 指定要修改用户家目录
# -s 指定要修改用户的bash shell
# -c 指定要修改用户注释信息
# -l 指定要修改用户的登陆名 - 删除用户
userdel, 加上-r 会把用户的家目录删了 - 修改密码
passwd username - 用户管理出现故障
命令行变成-bash-4.2$或-bash-4.1$
原因:rm时,把家目录的.bash文件删了
解决方法:cp /etc/skel/.bash ~,因为/etc/skel/.bash是家目录的模板
特殊权限
- s:如果命令有特殊权限s时,那么在执行命令时 会转由该命令的所属主调用。如passwd有特殊权限s,那么在调用时就会转由root调用。从而可以去修改shadow文件
- g:与s同理,调用的时候会转由所属组的权限去调用
- t:粘滞位,比如tmp目录,所有人都可以创建,但只有root才可以删除所有文件,其他用户只能删除自己创建的。
一般作为服务初始化,存储临时文件
特殊属性
- chattr +a,不可以对文件进行删除和修改,只能追加数据到文件
- chattr +i,不可用对文件进行删除和修改
- lsttr,可以查看文件的特殊属性
- 使用案例,日志只可以追加,不能删除和修改。
中病毒后,加锁以免继续篡改文件
掩码umask
- 系统默认权限目录时777 文件时666,但因为umask会判断减去权限,在/etc/profile中
所以如果时uid大于199,且用户名称和组名称相同
时umask时002。其他情况时022 - 创建家目录时,权限是700,因为在/etc/login.defs中设置的umask是077
重定向
- 输入输出中,0是输入,1是正确输出,2是错误输出。
使用场景,把正确输出和错误输出分别输出到文件中
find /etc > ,txt 正确输出
find /etc 2 > .txt 错误输出
find /etc & >.txt 混合输出
查找文件
- find 路径 类型 条件
-type d f
-name “” -iname “”
-sizse +5M -5M 5M
-mtime 天 +7 7 -7
-mmin 分钟
-perm /+r 有读权限, /+w 有写权限
-perm 755 查找权限
-user -nouser -group -nogroup
-path 路径,跟-prune 使用时就是排除这个路径
find /etc -path /etc/sane.d -prune -o -type f 如果还有其他条件就需要加-o 固定搭配
取反:!
查找文件之后删除:find /etc -type f | xargs rm
xargs :把上一个命令执行的文件作为下一个命令的输入 且在文件在最后
查找当前目录下的文件:find ./ -type f | xargs grep “oldboy”
打包和压缩
- gzip:gzip是压缩,zcat是查看,gzip -d是解压
使用场景:对一些文件不想删除,又不想移动,但又想使其失效。就使用gzip压缩,改其后缀名,删除原文件。
zip -r 路径 要压缩的文件
unzip -d 指定目录
tar czf 压缩名 压缩目录
c创建文档,z压缩tar.gz的包,f文件名
xf:解压 -C 指定目录 。tar xf /xx -C 指定目录
tf 查看包内容
排除文件,–exclude
排除多个文件,把文件路径写进文件中,tar xzfX etc_new.tar.gz pc.list /etc
案例
- 把/etc/passwd按最后一列排序,且取次数最多的前三个
思路:先取最后一列排序,然后进行uniq去重,再-c取次数,去重之前需要排序
awk -F ‘:’ ‘{print $NF}’ /etc/passwd | sort | uniq -c | sort -nr | head -3 - 取进程中斜杠结尾的,第五列,且替换
- 删除文件中绝对路径的文件。cat del.txt | xargs rm -f
- awk -F “:” “$3<200 && $3>1000” /name
- 找根下没有所属主或者所属组的文件
find / -type f ()