linux是多用户的操作系统,每个用户有一个所属主族和附属组,主族一般在创建用户的时候默认创建于用户名一样的组,在用户和所有组员之外的人就叫做其他人(other)。组存在意义是考虑到个人安全和隐私的情况下,方便一个团队去开发分享文件。
相关命令:
要在root权限下使用
adduser 用户名,添加一个用户 -g 为用户指定组,一般为附属组 -d 指定家目录 -p 密码
在Ubuntu下,与useradd不同的是,adduser会自动创建家目录,而useradd不会
userdel 删除用户 -r 删除用户目录的所有文件
groupadd 创建一个组
groupdel 删除一个组 -r 删除组下的所有文件
无需再root权限下:
chown 改变文件的所属用户
chgrp 改变组
whoami 当前用户
who 显示哪些用户登录
w 哪些用户登录在干什么
linux权限模式为ugo模式,u-user是指用户,g-group是指组,o-other是指other,Linux上的每一个文件(包括目录)都被定义对应ugo的三种权限:读、写、执行。这三种权限对于文件和目录的意义是不一样。
对于目录而言,读的权限是指能够看到目录的名字,然而如果一个目录仅仅只给一个读的权限,那么这个目录只能被看到目录名,一个只能被看到名字的目录对于用户是没有意义的,目录必须被打开才能看到目录中的文件名,所以目录必须具有被执行的权限。目录的写权限在安全的意义上是至关重要的,写的权限决定了用户能否创建删除文件。
对于文件而言,读的权限是指文件是否能被阅读,文本文件只要有读的权限,就能被打开去阅读,写决定了文件能否被修改,文件能否被执行只与文件的执行权限有关,与文件的扩展名就没有关系,这和windows是不一样的,linux的文件的扩展名只起到一个标示的作用。(执行的具体意义与读的打开有什么不同??)
除了ugo外,还有一个权限无穷大的管理员就是root,root之所以被称为管理员,是因为他可以无视文件的权限限制,如果不明白系统的文件的作用,root用户登陆系统是相当危险的一件事。
与权限相关的命令:
chmod 改变文件的权限
umask 设置文件的默认权限
对于文件,666-umask值
对于目录,777-umask值
默认的umask值:
root:022
普通用户:002
不常用
suid: 以文件所属用户执行
sgid:以文件所属组执行