Linux用户以及权限相关命令
查看身份
id:Display user identity.
这个命令的输出会显示uid,gid和用户所属的组。
uid即user ID,这是账户创建时被赋予的。
gid是primary group ID,是主要的组的id。当然这个用户也可以属于其他更多的组。
用户账户信息被定义在 /etc/passwd文件中,组信息被定义在/etc/group文件中。
chmod
命令名称:chmod
命令英文原意:change the permissions mode of a file
命令所在路径:/bin/chmod
语法:chmod [{ugo}{+-=}{rwx}][文件或目录][mode=421][文件或目录]
功能描述:改变文件或目录权限。
用户类型:
u:user,实际上指所有者
g:group所属组
o:others其他人
a:all所有人,即ugo的组合,如果不指定用户类型,默认是all。
+增加权限,-去掉权限,=直接赋予权限
r可读,w可写,x可执行。
具体对文件和文件夹有不同意义,参见:http://www.cnblogs.com/mengdd/p/3557441.html
比如一个叫doc的文件,给所有者加上wx权限:chmod u+wx doc
用数字表示权限
r-4
w-2
x-1
将每一组的权限数字加起来作为整组的权限,比如:
rwx是7,r-x是5,r--是4
那么rwxr-xr--可以表示为754
比较常用的数字:7 (rwx), 6 (rw-), 5 (r-x), 4 (r--), 0 (---)
umask命令
umask命令功能:显示、设置文件的缺省权限。
umask命令语法:umask [-S]
-S:以rwx形式显示新建文件或目录的缺省权限。
执行umask:
显示0022
第一个0:特殊权限位
022用户权限位,权限掩码值。
需要用777减去022,得到755,三个数字分别表示ugo(user,group,others)的权限。
umask –S:
u=rwx,g=rx,o=rx
Linux权限规则:
缺省创建的文件不能授予可执行x权限,这点是为了安全着想,文件默认是不能执行的。
可以用umask改变默认权限,用umask加上掩码值的形式。
比如想把权限改为750,要用777减去750,及umask 027命令。
改变身份Changing Identities
在Linux中可以用三种方式改变自己当前的身份:
1.登出,然后用另一个账号登入(…orz…)。
2.使用su命令。
3.使用sudo命令。
su
su:Run a Shell with Substitute User and Group IDs.
su [-[l]] [user]
如果使用了-l选项(经常被简写为-),结果就是一个login shell。
意思是用户user的环境会被载入,当前的工作路径会被换为这个用户的home路径。如果没有指定用户,默认是superuser。
当执行su –之后,需要输入superuser的密码,输入成功之后,会开启一个新的shell,命令提示符将会变为#(之前是$),并且当前的工作目录变为superuser的home目录(/root),结束后如果要退出,输入exit,就会回到之前的shell。
也可以直接执行一条命令:
su –c ‘command’
需要把命令放在引号里,以作区分。
sudo
sudo:Execute a Command as Another User.
sudo和su类似,有一些附加的属性,管理员可以配置sudo,在良好的控制下,让普通用户以不同的身份执行命令。
一个用户可能被限制在一些特定的命令中,不能执行其他。
另一个不同就是sudo不要求知道superuser的密码,只需要知道当前用户的密码,输入密码后,完成认证,sudo不会新开一个shell,也不会载入另一个用户的环境,命令也不需要被引号括起来。这种行为可以通过各种选项覆写,可以查看sudo的man page。
sudo –l可以查看sudo所赋予的权限。
改变所有者和所属组
改变所有者:chown
命令英文原意:change file ownership
语法:chown [用户] [文件或目录]
功能:改变文件或目录的所有者。
改变所属组:chgrp
命令英文原意:change file group ownership
语法:chown [用户组] [文件或目录]
功能:改变文件或目录的所属组。
chown命令也可以用于改变所属组。
chown [owner][:[group]] file...
更改密码
passwd [user]
重置密码时,需要输入旧的密码。
如果你有superuser的权限,你还可以设置其他用户的密码。
另一些选项可以设置账户锁定,密码过期等,详细信息可以查看passwd的man page。
参考资料
《The Linux Command Line》
视频教程:LAMP兄弟连李明老师讲Linux
相关博文:
ls –l显示文件权限: