1. Linux禁止用户登录的一种方法
usermod -Ldduyoung ##Lock 帐号dduyoung
usermod -Udduyoung ##Unlock 帐号dduyoung
2. 命令:ls –l输出详解:
比如一个输出:
-rwxr-xr-x 1 root wheel 430540 Dec 23 18:27 /bin/bash
文件权限 链接数 文件所有者 所属群组 文件大小 文件修改时间 文件名
第一个字段: -rwxr-xr-x 包含该特殊文件的权限的符号表示。该字段中的首字符(-)指定该文件的类型,本例中它是一个常规文件。其它可能的首字符还有:
“d”目录
“l”符号链接
“c”字符专门设备文件
“b”块专门设备文件
“p”先进先出
“s”套接字三个三元组
第一字段的其余部分由三个三元组字符组成。第一个三元字符组代表文件所有者的权限,第二个代表文件的组的权限,第三个代表所有其他用户的权限:
所有者的权限: "rwx"
组的权限: "r-x"
其他用户的权限: "r-x"
上面,r 表示允许读(查看文件中的数据),w 表示允许写(修改文件以及删除),x 表示允许“执行”(运行程序)。
3. 一些指令:
查看当前使用的用户:whoami
查看当前用户所属的组:groups
查看其它用户所属的组:groups user
在一个目录下创建一个账号: useradd –d path name
新建一个账号加入一个组里面:useradd –g groupsname, 多个组:useradd –ggroups1,groups2 … name
创建一个组:groupadd [-g group] name
把一个用户添加到另外一个组里面:gpasswd -a user group
4. 改变用户和组所有权
用chown 或 chgrp,可以改变文件或其它文件系统对象的所有者或组,除非是超级用户,否则您不可以使用 chown,然而任何人都可以使用 chgrp 来将文件的组所有权改为他们所属的组。用法:
chown [OPTION]... [OWNER][:[GROUP]] FILE
如:
# chown root /etc/passwd
# chgrp wheel /etc/passwd
还可以用 chown 命令的另一种形式同时设置所有者和组:
# chown root.wheel /etc/passwd
改变一个组以及所有者:chown user:groups path
5. usermod:改变用户的资料权限:
usermod [-LU][-c<备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-l <帐号名称>][-s ][-u ][用户帐号]
6. chmod:
chown 和 chgrp 可以用来改变文件系统对象的所有者和组, 而另一个程序 — 叫做 chmod — 用来改变我们可以在 ls -l 清单中看到的 rwx 权限。
比如:chmod +x scriptfile.sh
中的+是增加一个权限,而-是减少一个权限, 但是是对于所有组。
chmod [who] +x filename,增加who(u:所有者user; g:组groups;o:其他用户other;a:所以用户all),加权限(-为减权限)。
实例:
$ chmod u+xfile 给file的属主增加执行权限
$ chmod 751file 给file的属主分配读、写、执行(7)的权限,给file的所在组分配读、执行(5)的权限,给其他用户分配执行(1)的权限
$ chmodu=rwx,g=rx,o=x file 上例的另一种形式
$ chmod =rfile 为所有用户分配读权限
$ chmod 444file 同上例
$ chmoda-wx,a+r file 同上例
$ chmod -Ru+r directory 递归地给directory目录下所有文件和子目录的属主分配读的权限
$ chmod 4755 设置用ID,给属主分配读、写和执行权限,给组和其他用户分配读、执行的权限。
7. 数字与权限
r :4 w:2 x:1
8. SUID和SGID的详细解析
由于SUID和SGID是在执行程序(程序的可执行位被设置)时起作用,而可执行位只对普通文件和目录文件有意义,所以设置其他种类文件的SUID和SGID位是没有多大意义的。
首先讲普通文件的SUID和SGID的作用。例子:
如果普通文件myfile是属于foo用户的,是可执行的,现在没设SUID位,ls命令显示如下:
-rwxr-xr-x 1foo staff 7734 Apr 05 17:07 myfile
任何用户都可以执行这个程序。UNIX的内核是根据什么来确定一个进程对资源的访问权限的呢?是这个进程的运行用户的(有效)ID,包括user id和group id。用户可以用id命令来查到自己的或其他用户的user id和group id。
除了一般的user id 和group id外,还有两个称之为effective 的id,就是有效id,上面的四个id表示为:uid,gid,euid,egid。内核主要是根据euid和egid来确定进程对资源的访问权限。
一个进程如果没有SUID或SGID位,则euid=uid egid=gid,分别是运行这个程序的用户的uid和gid。例如kevin用户的uid和gid分别为204和202,foo用户的uid和gid为200,201,kevin运行myfile程序形成的进程的euid=uid=204,egid=gid=202,内核根据这些值来判断进程对资源访问的限制,其实就是kevin用户对资源访问的权限,和foo没关系。
如果一个程序设置了SUID,则euid和egid变成被运行的程序的所有者的uid和gid,例如kevin用户运行myfile,euid=200,egid=201,uid=204,gid=202,则这个进程具有它的属主foo的资源访问权限。SUID的作用就是这样:让本来没有相应权限的用户运行这个程序时,可以访问他没有权限访问的资源。passwd就是一个很鲜明的例子。SUID的优先级比SGID高,当一个可执行程序设置了SUID,则SGID会自动变成相应的egid。