chattr&chown&cat&cut&useradd&passwd&chage&usermod
1.用chattr命令防止系统中某个关键文件被修改
chattr +i /etc/resolv.conf chattr -i /etc/resolv.conf 要想修改此文件就要把i属性去掉 lsattr /etc/resolv.conf # 让某个文件只能往里面追加数据,但不能删除,适用于各种日志文件 chattr +a /var/log/messages
2.chown:改变文件的属主和属组
chown oldboy hehe.txt 只改变属主 chown :oldboy hehe.txt 只改变属组 chown oldboy.oldboy hehe.txt 两者都改 chown -R oldboy.oldboy oldboy/ -R递归所有文件
3.chmod:改变文件的权限
chmod u=rw,g=r,o=rwx hehe.txt chmod o=--- hehe.txt chmod o-rwx hehe.txt 这两种方法都可以去掉权限
4.cat
cat -n hehe.txt 查看文件并为所有行标记行号 cat -b hehe.txt 查看文件但之标记非空行的行号 cat -E a.txt 查看文件并在行尾显示$(每一行都有$) cat -s a.txt 将多个空行合并成一个空行 -s:suppress repeat empty lines cat -T a.txt 可以区分tab键和空格(制表符显示为^I)
所以查看所有行、空行和不看空行的命令如下:
grep "$" a.txt grep -n "^$" a.txt grep -nv "^$" a.txt
tac命令是从文件的末行开始显示,rev命令是将字母顺序先后颠倒.
5.cut-默认以tab键为分隔符
head -n -10 /etc/inittab 除了后十行其余都显示 tail -f access.log tailf access.log # tail -f的简写并不是tailf,这两个没什么关系,是两个命令 cut -b 3 hehe.txt 显示第三个字节 cut -b 3-4 hehe.txt 显示n到m cut -b -4 hehe.txt 显示n个字节之前的内容
用-b切割中文的话就会乱码,-c切割中文不会乱码,会自动分辨英文、中文.
# head -1 /etc/passwd | cut -d : -f4
-d指定分隔符--delimiter,-f指定字段--fields
cut分隔符只支持单个字符,awk默认分隔符是空格,且支持多个分隔符
指定空格为分隔符用:-d ' ' 引号中有一个空格
6./etc/skel目录
/etc/skel目录是用来存放新用户环境变量文件的目录,当添加新用户时,
这个目录下所有文件会被复制到新添加的用户家目录下.作用:
可以为新用户创建统一的、标准的初始化环境(例如编辑.bash_profile)
切换用户时出现这种情况---bash-4.1$ 用户没有家目录或者家目录下缺少.bash_profile、.bashrc文件,解决办法: 以当前用户的身份将这些文件拷贝过来. bash-4.1$ cp /etc/skel/.bash* .
7.useradd
使用useradd命令添加用户,所用参数在这个文件中/etc/default/useradd
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
# useradd -c "production" -u 806 -G root,mysql -s /bin/sh -md /oldboy1 oldboy1
-c:创建用户的说明;-G:指定多个用户组;-g:指定主组
-m:指定家目录,如果不存在则创建;-d:指定家目录(得存在)
-e:指定过期时间(格式年/月/日);-M:不创建家目录
8.passwd(更改的是/etc/shadow文件)
a.非交互式修改密码:
echo "123456" | passwd --stdin oldboy
b.批量创建10个用户stu01-stu10,并且设置随机8位密码,
要求不能用shell的循环(例如:for,while等),只能用linux命令及管道实现.
echo stu{01..10}|tr " " "\n"|sed -r 's#(.*)#useradd \1 ; pass=`echo $RANDOM|md5sum|cut -c 1-8`; echo $pass|passwd --stdin \1; echo -e "\1 \t $pass">>/tmp/oldboy.log#g'|bash 举一条命令stu01用户的过程拆解如下: useradd stu01; pass=`echo $RANDOM|md5sum|cut -c 1-8`; echo $pass|passwd --stdin stu01; echo -e "stu01\t$pass">>/tmp/oldboy.log
c.passwd设置日期
passwd -n 7 -x 60 -w 10 -i 30 oldboy
-n:多少天以内不能修改密码
-x:多少天以后必须修改密码
-w:过期前多少天通知用户
-i:密码过期后多少天,用户被禁掉
d.chage(不常用)
chage -l oldboy 查看用户密码期限,看的是/etc/shadow
-E:将账户过期时间设为"过期日期",MM/DD/YY
e.删除用户
userdel -r oldboy 连家目录一起删,一般不这么用
删除经验:
1.vi /etc/passwd 注释掉用户; 2.把登录shell改成/sbin/nologin; 3.openLDAP账号统一管理,ldap库里删掉用户
f.usermod--修改用户属性
# usermod -c "oldboy6" -u 999 -G sa -s /bin/bash -md /home/oldboy6 oldboy6
参数老男孩QQ空间:https://user.qzone.qq.com/49000448/blog/1422183723