首页 > 代码库 > unit5.6
unit5.6
Unit 5
/etc/passwd //用户信息配置文件
一共七个属性
用户:密码:uid:gid:说明:家目录:用户使用的shell(和系统对话打开的shell)//////etc/shells(系统法shell)
/etc/group //组信息配置文件
组名:组密码:组ID:组内其它
新建一个用户;linux
mkdir /home/linux //新建用户家目录
chown linux:linux /home/linux //
vim /etc/passwd //添加新用户信息
vim /etc/group //添加组信息
su - linux //切换用户
如何查看组信息
id student //查看student组的信息
组信息的一些参数
-u //用户的uid
-g //用户初始组id
-G //用户所有所在组id
-n //显示名字而不是id数字
-a //显示所有信息
修改用户建立时候的默认参数时,需要修改配置文件“/etc/login.defs”
userdel -r linux //删除linux用户信息
useradd linux //添加linux用户信息***每次添加用户操作之前,必须先删除用户的所有信息
useradd -g 2000 linux //添加用户时指定初始组ID为2000时,此ID必须存在,如果不存在,需要先添加一个初始组的ID
groupadd -g 2000 linux //添加初始组ID为2000,添加完成后,再添加指定初始组ID为2000的用户linux。
监控用户信息,组信息
watch -n 1 ‘tail -n 3 /etc/passwd /etc/group ;echo ========ls /home/‘ //监控/etc/passwd文件和/etc/group文件的后三行。 列出/home下的用户名
修改用户的信息的几个参数:
usermod -c “hahaha” linux //更改说明为“hahaha”
-d /home/linux westos //指定用户家目录
-s /bin/tcsh linux //默认与系统交互所使用的shell类型
-G ID 组名 //指定用户附加组
usermod -u 2000 linux //修改用户UID
usermod -g 72(此ID 必须存在) linux //修改用户初始组ID
usermod -G 72 linux //修改用户所有组ID
usermod -G "" linux //删除用户所有组
usermod -c “说明” linux // 修改说明
usermod -d /home/westos linux //修改用户家目录
usermod -md /home/linux linux // 更改家目录指定及加目录名称
usermod -s /bin/csh //更改shell为/bin/csh
usermod -L innux //冻结帐号
usermod -U linux //解锁
---------------------------------------------------------
如何在不交互的情况下为用户修改密码
stdin
echo admin|passwd --stdin admin //此命令就是将输出的admin经过管道符转译后设置为admin用户的密码。
----------------------------------------------------------
***用户权力下放***
(1)在系统中,超级用户可以下放普通用户不能执行的操作给普通用户
下放权力的配置文件:/etc/sudoers
(2)格式:
获得权限用户 主机名称=(获得的用户身份) 命令
(3)执行下放权限命令
sudo 命令 //第一次执行sudo需要输入当前用户密码
visudo命令编写/etc/sudoers文件:
##Allow admin to create users on desktop8.example.com(主机名)//以#开头的行为注释,并不执行。
admin(用户名) desktop8.example.com(主机名)=(root)(用户以什么身份执行) /user/bin/useradd(用户所执行的操作) //主机名的查看用hostname
执行useradd操作时命令行需进行调用。
sudo useradd westos(此为要添加的用户名)
如果想要在执行时不输入密码。则需要再修改/etc/sudoers文件
admin(用户名) desktop8.example.com(主机名)=(root)(用户以什么身份执行) NOPASSWD: /user/bin/useradd(用户所执行的操作) //表示用户调用sudo命令的时候不需要自己密码
usermod -L //锁定用户,密码前加!
-U //解锁密码
passwd -l //锁定用户,密码前加!!。锁定更彻底
***用户认证信息的控制***
chage -d 0 admin //"0"代表修改密码前所使用的天数。即首次使用admin登陆系统系统会提示修改密码。
chage -d 2 admin //"2"表示密码的最短使用天数。即两天之后才可更改密码。
chage -m 2 admin //修改密码的最短有效期为两天,
chage -M 999 admin //修改最长有效期为999天
chage -W 3 admin //修改警告期为三天。
chage -I 2 admin //修改非活跃天数为两天。
chage -E "YY-MM--DD" admin //修改密码到期日。
监控用户密码信息
watch -n 1 tail -n 1 /etc/shadow //**/etc/shadow的最后一行为用户admin的密码信息。用这条命令来监控此密码信息。
-----------------------------------------
Unit6
一.文件的权限
***查看文件的属性***
ls -l filename(文件名)
执行ls -l /etc 后,会列出如下文件
total 1528
drwxr-xr-x. 3 root root 97 Dec 23 19:39 abrt
-rw-r--r--. 1 root root 18 Dec 23 19:45 adjtime
-rw-r--r--. 1 root root 1518 Jun 7 2013 aliases
-rw-r--r-- 1 root root 12288 Dec 23 11:46 aliases.db
drwxr-xr-x. 2 root root 4096 Dec 23 19:43 alternatives
-rw-------. 1 root root 541 Apr 21 2015 anacrontab
-rw-r--r--. 1 root root 55 Sep 16 2014 asound.conf
-rw-r--r--. 1 root root 1 Jun 22 2015 at.deny
drwxr-xr-x. 2 root root 31 Dec 23 19:40 at-spi2
drwxr-x---. 3 root root 41 Dec 23 19:39 audisp
drwxr-x---. 3 root root 79 Dec 23 11:46 audit
-rw-r--r--. 1 root root 12706 Sep 17 2015 autofs.conf
-rw-------. 1 root root 232 Sep 17 2015 autofs_ldap_auth.conf
-rw-r--r--. 1 root root 795 Sep 17 2015 auto.master
drwxr-xr-x. 2 root root 6 Sep 17 2015 auto.master.d
-rw-r--r--. 1 root root 524 Sep 17 2015 auto.misc
-rwxr-xr-x. 1 root root 1260 Sep 17 2015 auto.net
-rwxr-xr-x. 1 root root 687 Sep 17 2015 auto.smb
drwxr-xr-x. 4 root root 94 Dec 23 19:42 avahi
***表示文件类型的参数***
drwxr-xr-x. 3 root root 97 Dec 23 19:39 abrt //“d”代表此文件类型为目录
-rw-r--r--. 1 root root 18 Dec 23 19:45 adjti //“-”代表文件类型为普通文件
lrwxrwxrwx. 1 root root 22 Dec 23 19:45 chrony.conf -> chrony.conf-found // “l”代表文件类型为连接文件
当然还有其他的一些表示文件类型的参数:
c //代表字符设备
s //代表套接字
p //管道
b //快设备
l //连接
d //目录
- //普通文件
***文件的权限***
“r” //读权限
“w” //写权限
“x” //可执行权限
d|rwx|r-x|r-x. 3 root root 97 Dec 23 19:39 abrt //此文件类型为目录,所有人权限为“rwx”,
所有组权限为“r-x”,
其他人权限为“r-x”
“3”表示此目录的属性大小,(如果这个文件不是目录的话,那么“3”代表系统记录此文件的次数)
文件所有人为root,
所有组为root,
文件内容属性大小为97,
最近一次修改时间为Dec 23 19:39,
文件名为abrt。
***文件所有人所有组的管理***
chown username file/directory //更改文件的所有人
chown username:groupname file|directory //更改所有人所有组
chown -R username directory //更改目录本身及里面所有内容的所有人
chgrp -R groupname directory //更改目录本身及里面所与内容的所有组
这里我们用/mnt目录来操作
为了更好的观察修改所有人和所有组信息,我们可以打开一个新的监控窗口
监控命令:
watch -n 1 ls -lR /mnt
***文件的普通权限***
rw-|r--|r-- //这里的第一个“rw-”代表所有人权限,一般用“u”来代表
// 第二个“r--”表示文件所有组权限,一般用“g”来代表
//第三个“r--”表示其他人即第三方权限,一般用“o”来代表
这里的u,g,o分别表示的具体权限:
u:表示文件所有人对文件可以读写
g:表示文件组成员对文件可读
o:表示其他人对文件可读
(1)”r“的权限,对目录和文件的操作含义是不同的
对文件:可以查看文件中的字符,就是读取文件内容
对目录:可以查看目录中的文件信息,但并不能查看目录中文件的具体内容。
(2)“w”的权限,和“r”相似
对文件:可以更改文件内字符。
对目录:可以在目录中添加删除文件,但不能更改文件的具体内容。
(3)“x”权限
对文件:可以运行文件内记录的程序动作
对目录:可以进入目录中
(4)字符方式修改文件的权限
具体形式:chmod <u|g|o><+|-|=><r|w|x> file|directory
//“ 命令 <所有人权限|所有组权限|第三方权限><+|-|=><读|写|可执行> 文件名|目录名”
chmod u-x file //给file的所有人去掉x权限
chmod g+w file //给file的所有组添加w权限
chmod u-x,g+w file //给file的所有人去掉x权限,file所有组添加w权限
chmod ugo-r file //file的所有人,所有组,以及其他人都去掉r权限。(该file文件对任何人都不可读)。
(5)数字方式修改该文件权限
在linux中 r=4
w=2
x=1
文件权限数字表示方式
rwx|rw-|r--
u=rwx=4+2+1=7
g=rw-=4+2+0=6
o=r--=4+0+0=4
那么,该文件的权限用数字表示就为764
chmod 修改后权限值 file
chmod 777 file //直接将file文件的权限修改为777
表示权限的各个数字的所代表的权限:
0=---
1=--x
2=-w-
3=-wx
4=r--
5=r-x
6=rw-
7=rwx
所以我们通常表示权限的数字范围在000-777,这里不包括特殊权限
***系统默认权限的设定***
从系统存在角度来说,开放的权力越大,系统存在的意义越高
从系统的安全角度来说,开放的权力越少,系统的安全性越高
所以系统在设定新建文件或目录时会去掉一些权限
***修改umask的值***
如果想要永久设定umask的值,需要修改两个配置文件的内容,分别为/etc/bashrc和/etc/profile
以上两个文件umask设定值必须保持一致。
source /etc/bashrc
source /etc/profile //重新加载这两个配置文件,让设定的umask值立即生效。
***特殊权限***
(1)suid
针对二进制可执行文件
文件内记录的程序产生的进程的所有人为文件所有人,和进程发起人身份无关
设定方式:
chmod u+s file
在linux中这里的s权限代表数字为4
chmod 4xxx file
(2)sgid
对文件来说:只针对二进制可执行文件,任何人运行二进制文件,运行时程序产生的进程所有组都是文件的所有组, 和程序发起人组的身份无关。
对目录:当目录拥有sgid权限后,目录中新建的所有文件的所有组都自动归属到目录的所有组之中,和文件建立者所在的组无关
设定方式:
chmod g+s file|dir
这里的s权限代表数字2
chmod 2xxx file|dir
(3)sticky
t权限:只针对目录,当一个目录上有t权限,那么目录中的文件只能被所有人删除
设定方式:
chmod o+t directory
这里t用数字表示为1
chmod 1777 directory
ps ax -o user,group,comm | grep watch //过滤watch命令的进程,并提取出该进程的所有人,用户组,命令。
chgrp student /bin/watch //修改组为student
ls -l /bin/watch //查看此命令的信息
本文出自 “12444546” 博客,谢绝转载!
unit5.6