echo ------- >> 1.txt [zkpk@localhost 桌面]$ df -Th //查看磁盘使用情况 文件系统 类型 容量 已用 可用 已用%% 挂载点 /dev/sda3 ext4 20G 5.2G 13G 29% / tmpfs tmpfs 1000M 124K 1000M 1% /dev/shm /dev/sda1 ext4 194M 28M 157M 15% /boot 用户及权限管理 虚拟用户是跑服务用的。 组是一堆用户的集合,一个用户可以属于多个组 UID = 0 -> 超级用户 在创建张三用户的同时也会自动创建张三组,并把张三加入进去,由于张三是第一个用户,所以这叫张三的基本组,后加入的用户都是附加组 基本组与附加组的区别:设置磁盘配额时,针对基本组,不针对附加组 ,但是生产环境下大多针对用户做磁盘配额。 vim/etc/passwd 用户所在地 root:x:0:0:root:/root:/bin/bash x:密码占用符,在另一个文件中 0:UID 0:GID root:什么用户,描述,可以不要 /root:家目录(宿主目录) /bin/bash: 它的shell,onlogin:不能登陆系统 /etc/shadow 用户密码所在地 root:$6$aF2yZRcY.dzfTF8B$n128ssxjA0oq39hpBGKCwcsPwcI/x6W8px9xC5Qsf8oiCqp3MvBmvGpNmXjw6OoTOXodvAoycL32ULL1dMVxE0:16786:0:99999:7::: //密码加密字符串,16786代表上一次改密码距离今天过了多少天,从1970-1-1开始算 //99999 :密码有效期,期限可以改 //7 : 过期时间 hsqldb:!!:16786::::: !!表示这个用户没有密码(被锁定了),没有密码不能登陆,区别于空密码 ftp:*:15155:0:99999:7::: *表示这个用户没有密码 /etc/group 组所在地 root:x:0:root root:root组 x:表示组的密码占位符,已经淘汰不用了 0:GID root:组内成员,可以通过VIM,插入添加组成员 daemon:x:2:root,bin,daemon /etc/gshadow 组密码所在地,已无用 添加用户 [root@localhost 桌面]# useradd zhangsan [root@localhost 桌面]# tail -1 /etc/passwd zhangsan:x:501:501::/home/zhangsan:/bin/bash [root@localhost 桌面]# tail -1 /etc/shadow zhangsan:!!:16790:0:99999:7::: [root@localhost 桌面]# id zhangsan uid=501(zhangsan) gid=501(zhangsan) 组=501(zhangsan) [root@localhost 桌面]# useradd -u 4444 -d /churchill -e 2016-12-31 -s /sbin/nologin churchill [root@localhost 桌面]# tail -1 /etc/passwd //查看用户 churchill:x:4444:4444::/churchill:/sbin/nologin [root@localhost 桌面]# ls / //查看宿主目录churchill 10K bin cgroup dev etc lib lost+found misc net proc sbin srv test usr backup boot churchill dir1 home lib64 media mnt opt root selinux sys tmp var [root@localhost 桌面]# [root@localhost 桌面]# tail -1 /etc/shadow //查看密码 churchill:!!:16790:0:99999:7::17166: [root@localhost 桌面]# [root@localhost 桌面]# passwd -d zhangsan //将用户密码设置为空 [root@localhost 桌面]# passwd //修改本用户密码 [root@localhost 桌面]# usermod -l san zhangsan //问题解决如下 usermod:用户 zhangsan 目前已登录 [root@localhost 桌面]# userdel -r zhangsan userdel:用户 zhangsan 目前已登录 注意加入-r参数仍旧不能删除正在登录的用户。 如果要删除正在登录的用户可以使用-f参数: # userdel -f abc [root@localhost 桌面]# tail -1 /etc/shadow churchill:!!:16790:0:99999:7::17166: //99999 [root@localhost 桌面]# chage -M 30 churchill //修改用户密码有效期 [root@localhost 桌面]# tail -1 /etc/shadow churchill:!!:16790:0:30:7::17166: //30 [root@localhost 桌面]# [root@localhost 桌面]# chage -d 0 zhangsan //用户下次登录时强制修改密码 [zkpk@localhost 桌面]$ vim /etc/login.defs //修改有效密码时间 SS_MAX_DAYS 99999 //有效时间 PASS_MIN_DAYS 0 PASS_MIN_LEN 5 PASS_WARN_AGE 7 [root@localhost 桌面]# groupadd admins //添加组 [root@localhost 桌面]# vim /etc/group [root@localhost 桌面]# useradd zhukov [root@localhost 桌面]# passwd zhukov 更改用户 zhukov 的密码 。 新的 密码: 无效的密码: 过短 无效的密码: 过于简单 重新输入新的 密码: passwd: 所有的身份验证令牌已经成功更新。 [root@localhost home]# groupmod -n mmm mmmm //修改组名 [root@localhost 桌面]# group -a zhukov admins bash: group: command not found [root@localhost 桌面]# gpasswd -a user1 admins Adding user zhukov to group admins [root@localhost 桌面]# vim /etc/group [root@localhost 桌面]# id zhukov uid=4445(zhukov) gid=4446(zhukov) 组=4446(zhukov),4445(admins) [root@localhost 桌面]# //gpasswd 添加删除组成员 [root@localhost 桌面]# gpasswd -M root,zhangsan,bin admins //定义admins,结果如:dmins:x:4445:root,zhangsan,bin [root@localhost 桌面]# vim /etc/group [root@localhost 桌面]# // su 与 su - 的区别 大部分Linux发行版的默认账户是普通用户,而更改系统文件或者执行某些命令,需要root身份才能进行,这就需要从当前用户切换到root用户,Linux中切换用户的命令是su或su -,下面就su命令和su -命令最大的本质区别给大家详解一下: 前者只是切换了root身份,但Shell环境仍然是普通用户的Shell;而后者连用户和Shell环境一起切换成root身份了。只有切换了Shell环境才不会出现PATH环境变量错误。su切换成root用户以后,pwd一下,发现工作目录仍然是普通用户的工作目录;而用su -命令切换以后,工作目录变成root的工作目录了。用echo $PATH命令看一下su和su - 以后的环境变量有何不同。以此类推,要从当前用户切换到其它用户也一样,应该使用su -命令。 [root@localhost ~]# su [root@localhost ~]# echo $PATH /usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/uuuu/bin [uuuu@localhost root]$ su - 密码: [root@localhost ~]# echo $PATH /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin //root与zkpk的 shell命令不同 [root@localhost ~]# su zkpk [zkpk@localhost root]$ echo $PATH /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin [root@localhost ~]# su - zkpk [zkpk@localhost ~]$ echo $PATH /usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/zkpk/bin [zkpk@localhost ~]$ visudo 语法错误不让保存 vim /etc/sudoers 语法错误也可以保存 zkpk ALL=/usr/sbin/useradd,/usr/bin/passwd,!/usr/bin/passwd root //不能修改root密码 zkpk ALL=/usr/sbin/useradd,/usr/bin/passwd ?*,!/usr/bin/passwd root //如果不加?*,在zkpk用户下,sudo passwd 会修改root密码 /etc/skel/ //新建用户的主目录的模板 //如果每新建一个用户,其家目录下有README文件 ? // 在 /etc/skel/ 文件下添加README即可 [root@localhost 桌面]# cd /etc/skel/ [root@localhost skel]# ls -a . .. .bash_logout .bash_profile .bashrc .emacs .gnome2 .mozilla [root@localhost skel]# //.bash_profile 声明变量, 用户登录时,生效 //.bashrc 用户登录时,会自动执行里面的命令,生效 //.bash_logout 当用户注销/退出时,里面命令生效 [root@localhost ~]# su - zhangsan [zhangsan@localhost ~]$ ls -a . .bash_history .bash_profile .emacs .mozilla .. .bash_logout .bashrc .gnome2 [zhangsan@localhost ~]$ [root@localhost skel]# vim /etc/default/useradd # useradd defaults file GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/bash SKEL=/etc/skel CREATE_MAIL_SPOOL=yes [zhangsan@localhost ~]$ who root tty1 2015-12-21 14:00 (:0) root pts/0 2015-12-21 14:01 (:0.0) [zhangsan@localhost ~]$ w 14:26:37 up 27 min, 2 users, load average: 0.28, 0.24, 0.19 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root tty1 :0 14:00 26:57 9.99s 9.99s /usr/bin/Xorg : root pts/0 :0.0 14:01 0.00s 0.08s 0.06s w [zhangsan@localhost ~]$ users root root [zhangsan@localhost ~]$ 访问权限 读取r: 允许查看文件内容、显示目录列表 写入w: 允许修改文件内容,允许在目录中新建、移动、删除文件或子目录 可执行x:允许运行程序、切换目录 //chmod 修改文件或目录的权限 [root@localhost ~]# chmod g+w,o-r 12345 [root@localhost ~]# chmod 644 12345 //chown 修改属主,属组 [root@localhost ~]# ll 12345 -rw-r--r--. 2 root root 11 12月 18 16:53 12345 [root@localhost ~]# chown zkpk.admins 12345 [root@localhost ~]# ll 12345 -rw-r--r--. 2 zkpk admins 11 12月 18 16:53 12345 [root@localhost ~]# //chgrp 只能修改属组 [root@localhost ~]# chgrp root 12345 [root@localhost ~]# ll 12345 -rw-r--r--. 2 zkpk root 11 12月 18 16:53 12345 [root@localhost ~]# //使用附加位权限 SET位权限 主要用途: 为可执行(有 x 权限的)文件设置,权限字符为“s” 他用户执行该文件时,将拥有属主或属组用户的权限 SET位权限类型: SUID:表示对属主用户增加SET位权限 SGID:表示对属组内的用户增加SET位权限 //SUID [root@localhost ~]# ll /usr/bin/passwd -rwsr-xr-x. 1 root root 32680 1月 29 2010 /usr/bin/passwd [root@localhost ~]# ls -lh /etc/shadow ----------. 1 root root 1.4K 12月 21 14:05 /etc/shadow [root@localhost ~]# //添加SUID [root@localhost ~]# chmod +x 1.txt [root@localhost ~]# ll 1.txt -rwxr-xr-x. 2 zkpk root 11 12月 18 16:53 1.txt [root@localhost ~]# chmod u+s 1.txt //添加SUID [root@localhost ~]# ll 1.txt -rwsr-xr-x. 2 zkpk root 11 12月 18 16:53 1.txt [root@localhost ~]# [root@localhost ~]# chmod u+s 1.txt [root@localhost ~]# ll 1.txt -rwsr-xr-x. 2 zkpk root 11 12月 18 16:53 1.txt [root@localhost ~]# chmod u-x 1.txt [root@localhost ~]# ll 1.txt -rwSr-xr-x. 2 zkpk root 11 12月 18 16:53 1.txt [root@localhost ~]# //使用附加位权限 粘滞位权限(Sticky) 主要用途: 为公共目录设置,权限字符为“t” 用户不能删除该目录中其他用户的文件 [root@localhost ~]# ls -ld /tmp/ drwxrwxrwt. 31 root root 4096 12月 21 22:02 /tmp/ [root@localhost ~]# ls -ld /var/tmp/ drwxrwxrwt. 2 root root 4096 12月 21 17:31 /var/tmp/ //设置SET位、粘滞位权限 使用权限字符 chmod ug±s 可执行文件 chmod o ±t 目录名 使用权限数字: chmod mmmm 可执行文件 m为4时 对应SUID,2对应 SGID,1对应粘滞位,可叠加 //细部权限规划:ACL的使用 ACL是 Access Control List 的缩写主要目的是在 提供传统的owner,group,others,read, write,execute权限之外的细部权限设定。 //setfacl [root@localhost ~]# chmod 770 /test/ [root@localhost ~]# ls -lhd /test/ drwxrwx---. 4 root root 4.0K 12月 18 10:56 /test/ [root@localhost ~]# su - zkpk [zkpk@localhost ~]$ cd /test/ -bash: cd: /test/: 权限不够 [zkpk@localhost ~]$ ls /test/ ls: 无法打开目录/test/: 权限不够 [zkpk@localhost ~]$ exit logout [root@localhost ~]# setfacl -m u:zkpk:7 /test/ [root@localhost ~]# ls -lhd /test/ drwxrwx---+ 4 root root 4.0K 12月 18 10:56 /test/ [root@localhost ~]# su - zkpk [zkpk@localhost ~]$ cd /test/ [zkpk@localhost test]$ //getfacl [zkpk@localhost test]$ getfacl /test/ getfacl: Removing leading '/' from absolute path names # file: test/ # owner: root # group: root user::rwx user:zkpk:rwx group::rwx mask::rwx other::--- [zkpk@localhost test]$ //移除所有的 ACL 设定参数 [root@localhost ~]# setfacl -b /test/ //移除 [root@localhost ~]# getfacl /test/ getfacl: Removing leading '/' from absolute path names # file: test/ # owner: root # group: root user::rwx group::rwx other::--- //设置光盘挂载点 [root@localhost media]# df -Th 文件系统 类型 容量 已用 可用 已用%% 挂载点 /dev/sda3 ext4 20G 5.2G 13G 29% / tmpfs tmpfs 1000M 264K 1000M 1% /dev/shm /dev/sda1 ext4 194M 28M 157M 15% /boot /dev/sr0 iso9660 3.4G 3.4G 0 100% /media/RHEL_6.2 x86_64 Disc 1 [root@localhost media]# cd [root@localhost ~]# umount /dev/cdrom [root@localhost ~]# df -Th 文件系统 类型 容量 已用 可用 已用%% 挂载点 /dev/sda3 ext4 20G 5.2G 13G 29% / tmpfs tmpfs 1000M 264K 1000M 1% /dev/shm /dev/sda1 ext4 194M 28M 157M 15% /boot [root@localhost ~]# mount /dev/cdrom /media/ mount: block device /dev/sr0 is write-protected, mounting read-only [root@localhost ~]# df -Th 文件系统 类型 容量 已用 可用 已用%% 挂载点 /dev/sda3 ext4 20G 5.2G 13G 29% / tmpfs tmpfs 1000M 264K 1000M 1% /dev/shm /dev/sda1 ext4 194M 28M 157M 15% /boot /dev/sr0 iso9660 3.4G 3.4G 0 100% /media [root@localhost ~]# //设置yum仓库 [root@localhost yum.repos.d]# pwd /etc/yum.repos.d [root@localhost yum.repos.d]#vim localhost.repo [localhost] name=localhost baseurl=file:///media //指定仓库位置, 仓库有两种网络的(ftp://,http://),本地的(file://) enabled=1 //启用这个源 gpgcheck=0 // 不做校验 ~ [root@localhost yum.repos.d]# yum install samba -y //安装samba,-y [root@localhost yum.repos.d]# yum history Loaded plugins: product-id, refresh-packagekit, security, subscription-manager Updating certificate-based repositories. ID | Login user | Date and time | Action(s) | Altered ------------------------------------------------------------------------------- 5 | root <root> | 2015-12-21 17:31 | Erase | 1 4 | root <root> | 2015-12-21 17:27 | Erase | 1 3 | root <root> | 2015-12-21 17:23 | Install | 1 2 | root <root> | 2015-12-21 17:21 | Install | 1 1 | System <unset> | 2015-12-17 23:35 | Install | 1486 history list [root@localhost yum.repos.d]# yum history undo 3 //将 3 卸载 //关闭防火墙 [root@localhost ~]# service iptables stop iptables:清除防火墙规则: [确定] iptables:将链设置为政策 ACCEPT:filter [确定] iptables:正在卸载模块: [确定] [root@localhost ~]#