2.6 用户名文件
/etc/passwd
由 : 分隔成7个字段
(1) 用户名 规则:大小写字母、数字、减号(不能出现在首位)、点以及下划线,其他字符不合法
(2) x 放密码,安全起见放到 /etc/shadow
(3) uid (0-4294967294=2^32-2) root uid=0 1-499系统保留 普通账户是从500开始 (id +用户)
(4) gid 对应 /etc/group (创建用户会自动创建一个该用户同名的组)
(5) 注释说明,该字段没有实际意义,通常记录该用户的一些属性,例如姓名、电话、地址等等 用 chfn 更改
(6) 用户家目录
(7) shell /bin/bash, /bin/false也是不能登录, /sbin/nologin
2.7 密码文件
/etc/shadow
使用 : 分隔9个字段
(1) 用户名
(2) 密码,用SHA-512加密过,不可逆 (*表示账号被锁定,!!表示账户没有密码)
(3)上次更改密码的日期,例如上次更改密码的日期为2012年1月1日,则这个值就是 ‘365 x (2012-1970) + 10 + 1= 15341’.
(4)要过多少天才可以更改密码, 0 表示不限制
(5)密码多少天后到期,默认是99999,可以理解为永远不需要改
(6)密码到期前的警告期限
(7)账号失效期限,到期后过多少天锁定帐号
(8)账号的生命周期
(9)作为保留用的,没有什么意义
2.8 增加和删除用户组 2.9 增加和删除用户 3.0 usermod修改用户属性
新增/删除用户和组
groupadd -g 指定gid /etc/group组 /etc/gshadow组密码
groupdel 如果组内有用户,不能删除
useradd -u uid -g gid -d指定家目录 -M不建立家目录 -s 自定义shell
userdel -r 删除用户的家目录
usermod -u uid -s自定义shell -d指定家目录 -L(锁定一个用户) -U(解锁一个用户) -g(组) -G(扩展组)
chfn命令用来改变finger命令显示的信息。这些信息都存放在/etc目录里的passwd文件里。若不指定任何选项,则chfn命令会进入问答式界面。
-f<真实姓名>或--full-name<真实姓名>:设置真实姓名;
-h<家中电话>或--home-phone<家中电话>:设置家中的电话号码;
-o<办公地址>或--office<办公地址>:设置办公室的地址;
-p<办公电话>或--office-phone<办公电话>:设置办公室的电话号码;
-u或--help:在线帮助;
-v或-version:显示版本信息。
3.1 passwd修改用户密码
创建、修改用户密码
passwd
创建密码的规则:长度大于10;含大小写字母数字以及特殊字符 ;不规则性;不要带有自己名字、公司名字、自己电话、自己生日等。
mkpasswd 生成密码的工具,安装 expect包
mkpasswd -l 12(12长度密码) -s 0(0个字符) -d 4(4个数字) -C(大写字母) -c(小写字母)
passwd --stdin +用户(明文密码,不加用户默认root) //一般用在写脚本
echo "1305561612"|password --stdin xuan #给xuan这个设定密码为1305561612
3.2 su切换用户 3.3 sudo详解
当前用户 id whoami
用户身份切换
su - -c "mkdir /tmp/1.txt" xuan //就不用切换到xuan这个用户去执行命令了,这是su的一种用法
su - -c "ls -ld /tmp/1.txt" xuan
su - 用来初始化环境变量 $PATH $HOME等
sudo su到root需要输入root的密码不安全
visudo #编辑/etc/sudoers 配置文件 没有命令需安装 yum install -y sudo
格式: user host=(as_user) commands //host是所有来源的IP
比如: xuan ALL=(root) /bin/ls,/usr/bin/passwd //它的意思是,让xuan这个普通用户,拥有root的权限,针对ls这个命令。
sudo ls /root/
sudo -l 列出用户能执行的命令,上面有passwd了,就可以修改root的密码了,sudo passwd
应用:只允许使用普通账户登陆,而普通账户登录后,可以不输入密码就能sudo切换到root账户 (root不允许远程登录)
visudo
User_Alias USER_SU = test, test1, xuan //做用户的别名,可以写多个用户
Cmnd_Alias SU = /bin/su //做命令的别名,可以写多个命令
USER_SU ALL=(ALL) NOPASSWD: SU //其中NOPASSWD的意思是,普通用户使用sudo的时候,不需要输入当前用户自己的密码。
3.4 df命令
df -h -k(默认) -m(兆单位) 查看磁盘使用情况
df -i 查看iNode的使用情况
当去创建一个文件时,发现磁盘空间不足时,用df -h去查看是还有剩余的,实际是写不进去了,这时候
可能是iNode占满了。
3.5 du命令
du -sh 根据文件的大小显示合适的大小,这个是查看磁盘空间的大小;而ls查看的是文件本身的大小
du -sh /etc/ #查看目录的大小
du -sh /etc/init.d/iptables #查看文件大小
ls -lb /etc/init.d/iptables 和du -sb /etc/init.d/iptables 查看这个文件大小是一样的
touch 12
echo "12" >12
ls -lb 12
du -sh 12
一个块默认占4k,一个块只能存放一个文件
结论:du -sh查看的是文件占用磁盘空间的大小;而ls查看的是文件本身的大小
du -sb 12 //真实的大小
3.6 fdisk命令
fdisk -l查看磁盘分区状况
对增加一块10G的硬盘进行分区
fdisk /dev/sdb 进行分区,扩展分区加主分区的和不会超过4,最多是4
p n p 1 1 +2G p n e 2 回车 +5G p l n l 回车 +2G p w
磁盘小于2T,用fdisk,磁盘大于2T,用parted
3.7 磁盘格式化mke2fs
分完区,格式化 格式的文件系统可以查看这个文件cat /etc/filesystems
mkfd. tab键补全
mkfs.ext4 /dev/sdb5
或者
mke2fs -t(指定类型) ext4 -b(指定块大小) 1024(2倍的增加) -m(指定保留) 1(百分之一) -L(标签) xuan /dev/sdb1(分区名字)
3.8 磁盘挂载与卸载
磁盘挂载和卸载
mount /dev/sdb5 /mnt/
df -h
df -m #used 是格式化是iNode占用的
mkdir /home/xuan/123/
ls /home/
mount LABEL=xuan /home/xuan/123/ #使用LABEL挂载,blkid可以查看label
ls /home/
umount /mnt/
umount -l /dev/sdb1(当挂载很忙时,加上-l直接退出)
df -h(可以查看挂载),df -T(查看分区类型) tmpfs格式系统自带,跟内核相关
3.9 分区表fstab
cat /etc/fstab //写到配置文件里
或
ls /etc/rc.local //把命令写到这个文件,开机启动时会自动加载执行
blkid可以获得UUID
mount UUID号 /mnt/ //通过UUID挂载
vi /etc/fstab
第一段:可以设备名称、UUID、LABEL
第二段:挂载点
第三段:文件系统格式
第四段:挂载选项,可以是这些defaults= rw,suid,dev,exec,auto,nouser,async/sync
(dev可以去解析一些块设备、字符设备,exec可执行的权限,auto开机自动挂载,nouser普通用户不允许挂载,async/sync磁盘和内存不同步/同步)defaults包含这些
第五段:是否备份,0表示不去备份,1表示备份这个日志
第六段:0表示开机时不去检测磁盘坏道,1是留给根分区的,2表示开机时去检测 1级别>2级别
mount -a(会自动加载配置文件的所有配置)
vi /etc/rc.local
mount /dev/sdb1 /home/xuan/123/ (写入条命令就可以了)
mount -o(指定选项) noatime(表示在挂载时不去更新atime),rw,usrquota(磁盘配额,限制用户使用这个磁盘) /dev/sdb1 /home/xuan/123/
mount 可以查看当前挂载哪些和一些相关的选项