分类: LINUX
2013-07-17 23:27:20
linux用户和组的管理
在linux里面,一个用户添加到root组之后,还是普通用户,不是管理员,这点和windows是不同的;
linux用户管理
(1)添加用户
#useradd 用户名 (新建一个用户)
[root@schangech proj]# useradd schangech
选项可以添加到中间或者后面;
-d 指定家目录;
-M 不建立用户家目录;
-u 指定用户id;当用户id相同时需要添加-o选项;
-f 指定用户失效天数;
-e 指定用户过期日期;
-g 指定用户所属的主要组:
-G 指定用户所属的附加组;
-s 指定用户的登录shell;
-c 指定用户的说明;
练习:新建用户admin,指定用户id为0,所属的主要组为root,附加组为users和adm,失效天数为60天,过期日期为2015年7月15日,用户注释为systemgroup;
[root@schangech proj]# useradd -o -u 0 -g root -G schangech,adm -f 60 -e 2015/7/15 -c "system group" admin
(注意:此时的admin是不能删除的。想要删除必须修改用户id才能删除)
[root@schangech proj]# userdel -r admin
删除用户
#userdel -r username
-r 删除用户同时删除用户家目录;家目录默认情况下在/home下;
如果不删除用户家目录,删除用户之后,家目录成为无名家目录;
修改用户属性
#usermod username
(手工修改文件,不会引起文件的改变,此时的修改,只能通过手动来删除或者修改)
-L 锁定用户
-U 解锁用户
设定用户密码
#passwd username
-l 锁定用户密码
-u 解锁用户密码
-d 删除用户密码
[root@schangech home]# passwd -d schangech
[root@schangech home]# passwd -l schangech
锁定用户 schangech 的密码 。
passwd: 操作成功
[root@schangech home]# passwd -u schangech
解锁用户 schangech 的密码 。
passwd: 警告:未锁定的密码将是空的。
passwd: 不安全的操作(使用 -f 参数强制进行该操作)
[root@schangech home]# passwd -u -f schangech
解锁用户 schangech 的密码 。
passwd: 操作成功
linux用户组的管理
/etc/group
#groupadd -g 组id 组名
#groupdel 组名
如果这个组是用户的主要组,就会提示你,此组不能删除,创建用户时,如果没有指定组的名称,会自动创建一个和用户名一样的组。
[root@schangech home]# groupdel schangech
groupdel: cannot remove the primary group of user 'schangech'
#groupmod -g 组id 组名
用户和组的配置文件
/etc/passwd 用户基本信息文件
用户名:用户密码:用户id:用户组id:用户说明信息:用户家目录:登录shell
schangech:x:500:500::/home/schangech:/bin/bash
注意:用户id分为三种类型:
0 系统管理员id
1~499 系统内置用户id
500~65535 手工添加普通用户id
/etc/shadow 保存用户密码和时间日期等相关信息
schangech::15901:0:99999:7:::
用户名:用户密码:用户创建的日期::用户的失效天数:用户过期的时间::
!! 表示锁定用户,默认情况下,在shadow里面会出现两个感叹号!,这里注意,使用大写L和小写l的效果是一样的,但是出现的感叹号个数不同而已;
日期 从1970年1月1日开始加天数;
/etc/group 用户组文件
schangech:x:500:
用户组名:用户组密码:用户组id:所属用户
(可以通过图形界面来查找所属用户方式:[root@schangech proj]# system-config-users)
/etc/skel 用户默认配置文件的复制目录
什么是用户配置文件?
用户登录或者注销时候,需要的环境配置文件
(当我们新建用户,但是没有给该用户创建家目录时候,我们可以通过把/etc/skel里面的文件复制到相应的家目录里面,此时,该用户就可以是使用了)
/etc/login.defs 创建用户时的默认配置
仅仅针对新建用户的一些配置,对于已经存在的用户而言,没有什么效果;
用户和组帐号查询
id 命令,查询用户身份信息;
[root@schangech 桌面]# id schangech
uid=500(schangech) gid=500(schangech) 组=500(schangech)
finger 命令,查询用户的详细信息
[root@schangech 桌面]# finger schangech
Login: schangech Name:
Directory: /home/schangech Shell: /bin/bash
Never logged in.
No mail.
No Plan.
[root@schangech 桌面]# mail -s "test" schangech 在linux里面,可以直接使用mail来发邮件;
love
love
EOT
[root@schangech 桌面]# finger schangech
Login: schangech Name:
Directory: /home/schangech Shell: /bin/bash
Never logged in.
New mail received 一 7月 15 11:20 2013 (CST)
Unread since 一 7月 15 09:13 2013 (CST)
No Plan.
chfn 修改用户信息
[root@schangech 桌面]# chfn schangech
[root@schangech 桌面]# chfn schangech
Changing finger information for schangech.
Name []: sxkeji
Office []: network
Office Phone []: 0731-3305451
Home Phone []: 010-4589756
Finger information changed.
[root@schangech 桌面]# finger schangech
Login: schangech Name: sxkeji
Directory: /home/schangech Shell: /bin/bash
Office: network, 0731-3305451 Home Phone: 010-4589756
Never logged in.
New mail received 一 7月 15 11:20 2013 (CST)
Unread since 一 7月 15 09:13 2013 (CST)
No Plan.
w,who,users 对登录用户的查询;
[root@schangech 桌面]# w
11:23:29 up 3:01, 2 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 (终端) :0 08:22 3:01m 52.56s 52.56s /usr/bin/Xorg :
root pts/1 :0.0 09:14 0.00s 0.02s 0.00s w
-a 所有用户信息,看历史用户
-b 查询系统最后一次系统引导时间
[root@schangech etc]# who -b
系统引导 2013-07-15 08:21
-l 运行级别,可以手动设定,在/etc/inittab
[root@schangech etc]# cat /etc/inittab
[root@schangech 桌面]# who
root tty1 2013-07-15 08:22 (:0)
root pts/1 2013-07-15 09:14 (:0.0)
[root@schangech 桌面]# users
root root
groups 查询组信息
[root@schangech etc]# groups
root
第九章 文件的权限及归属
文件的属性信息
文件类型 文件权限 硬链接数 用户 属组 大小 创建时间 文件名
(目录是不能创建硬链接数,但是还是有硬链接数,是怎么回事?
答案:显示的是目录下面有多少个文件。)
如何找出/etc下面文件的数量?
[root@schangech proj]# find /etc -type f -maxdepth 1 |wc -l
文件权限的表示
r 只读 对文件可以进行查看,对目录表示可以列出目录下的内容;
w 可写 表示可以对文件修改,对目录而言,可以进行创建目录或者文件;
x 可执行 对目录表示可以进入,对目录来说,表示可以执行;
进入目录的权限是可执行的权限;
(老师的那个情况是如何弄的,我这里查看到/bin/cp里面的信息都是乱码。)
cp不能够起作用,被修改了。如何修改的?修改的位置在哪儿?
文件权限的用户设置
-rwx r-x r-x
前三位:文件属组的权限
中间三位:文件属组用户权限
后三位:其他用户权限
(注意:文件权限的位置是不变的 r 第一位表示,w 第二位表示,x 第三位表示)
文件权限的十进制表示
例如:权限r-x,rwx的十进制格式格式多少?
r-x二进制为101:5 rwx二进制为111:7
文件权限的设置
chmod 权限 文件
用字符进行设置
u 所有者
g 所属组用户
o 其他用户
e 所有用户
练习:设置文件file的权限为读写执行,所属组的用户只读,其他用户无任何权限;
[root@schangech proj]# chmod u=rwx,g=r,o= file
[root@schangech proj]# chmod 740 file 和上一条指令是同样的意义
[root@schangech proj]# chmod u-x,g+w,o+r file
[root@schangech proj]# export PATH="$PATH:/myfile"
(注意,在一个用户里面设置的环境变量,在另外用户里面是不会有作用的。)
[root@schangech proj]# chmod a=x file
[root@schangech proj]# ll
总用量 0
---x--x--x 1 root root 0 7月 15 15:07 file
如果想要对一个目录下面的所有文件都同时修改权限,必须添加-R;
[root@schangech proj]# chmod 750 sxkeji/ -R
设置文件的归属
单独查看文件信息时候,需要加-d;
#chown [-R] 所有者:所属组 文件
#chown schangech:users /proj/test -R
#chown schangech test
[root@schangech proj]# chown schangech:users test -R 赋予所有者权限
[root@schangech proj]# ll
总用量 4
drwxr-xr-x 2 schangech users 4096 7月 15 15:41 test
[root@schangech proj]# chown .users movie 修改所属组
[root@schangech proj]# chown schangech movie 修改属主的用户
chgrp user file 单独修改所属组的名称;
[root@schangech movie]# chgrp schangech file
[root@schangech movie]# ll
总用量 8
-rw-r--r-- 1 root schangech 33 7月 15 15:56 file
默认权限的设置
umask命令设置权限掩码,决定创建文件和目录的默认权限;
[root@schangech movie]# umask 查看目录的默认权限;
0022
创建文件的默认权限为:666-umask值;
0666-0022=644
创建目录的默认权限为:777-umask值;
0777-0022=755
练习:设置创建文件的默认权限为640;
[root@schangech proj]# umask 0026 只需要修改默认的umask就行;注意,当你设置的大于六的时候,任然当作0来计算;
[root@schangech proj]# touch love
[root@schangech proj]# ll
总用量 0
-rw-r----- 1 root root 0 7月 15 16:09 love
练习:设置创建目录的默认权限为750;
[root@schangech proj]# umask 0027
[root@schangech proj]# mkdir a
[root@schangech proj]# ll
总用量 4
drwxr-x--- 2 root root 4096 7月 15 16:11 a
文件的隐藏属性;
lsattr 查看文件的隐藏属性
A 当设置了A属性时,文件的访问时间不能修改;无法改名等操作;
S 将数据同步写入磁盘;
a 当设置了a属性时,只能添加内容而不能删除;只有root才能设置;
c 自动压缩文件,但是会增加CPU的消耗:
i 设置后文件无法删除,修改,改名;锁定文件;
[root@schangech aixocm]# mv linux oracle 添加i属性后,无法删除和系统,改名等
mv: 无法将"linux" 移动至"oracle": 权限不够
如果查看的是目录,需要添加 -d ;
[root@schangech proj]# lsattr -d a
-------------e- a
chattr 设置文件的隐藏属性;
stat test
[root@schangech proj]# stat a
File: "a"
Size: 4096 Blocks: 8 IO Block: 4096 目录
Device: 802h/2050d Inode: 5373967 Links: 2
Access: (0750/drwxr-x---) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2013-07-15 16:16:58.316133963 +0800 访问时间,不能够非常频繁的查看;
Modify: 2013-07-15 16:11:57.673135065 +0800 修改时间,对文件内容的修改
Change: 2013-07-15 16:11:57.673135065 +0800 对文件属性的修改;
[root@schangech proj]# chattr +A test
[root@schangech proj]# lsattr -d test
-------A-----e- test
练习:
(1)新建文件/myfile/apple,设置文件的权限为640,文件的所有者为apple用户和users组
(2)设置新建文件的默认权限为620
(3)设置目录myfile的内容只能增加而不能删除,修改。
[root@schangech proj]# chattr +a myfile/
(4)当用户对一个文件具有写权限而无读、执行权限时,能不能查看文件内容?能不能添加内容到文件?
用VIM 不能编写,只能使用echo来操作;
[schangech@schangech ~]$ cat /schangech/proj/lin
cat: /schangech/proj/lin: 权限不够
[schangech@schangech ~]$ echo "i love oracle too" >/schangech/proj/lin
(5)当一个文件的权限为000时,root用户能否进行读写操作?
能,添加信息时,需要强制执行;可以查看