Linux文件权限
用户名和密码
Linux的用户名和密码都存储在/etc/passwd (-rw-r--r--)中
cat /etc/passwd
root : x : 0 : 0 : root : /root : /bin/bash
用户名 : 密码 : 用户UID : 用户组GID : 用户文本描述 : HOME目录位置 : 默认shell
Linux为系统账户预留了500以下的UID,有些服务甚至要使用特定的UID才能正常工作。
为提高系统安全性,绝大多数Linux系统都将用户密码保存在 /etc/shadow (-rw-r-----)中,只有特定的程序(比如登陆程序)才能访问这个文件。
用户
useradd:添加用户(-D:查看新建用户默认配置,也可以再跟上其它参数来改变默认值;-m:为用户创建HOME目录,(-k)并将SKEL指定的文件(给出了用户环境变量的定义)拷贝到对应HOME路径下)
userdel:删除用户,默认只会删除 /etc/passwd 中的对应用户名和密码(-r:删除用户HOME目录以及邮件目录,不管是否存在其它用户的文件)
usermod:修改用户(-l:修改登录名;-L:锁定账户;-p:修改密码;-U:解除锁定)
passwd:修改某个用户的密码;chpasswd:接受输入或重定向从而实现多用户的密码修改
chsh:修改默认的用户登录shell
chfn:修改 /etc/passwd 备注字段中存储信息的标准方法
chage:管理账户有效期
组
Linux组的信息都存储在 /etc/group 中(当用户在/etc/passwd中指定某组为默认组时,用户账户不会再出现在/etc/group中)
cat /etc/group
root : x : 0 :
组名 : 组密码 : GID : 属于该组的用户列表
groupadd:创建新组(将某个用户添加到某组:usermod -G 组名 用户名;-g:会替换掉该账户的默认组)
groupmod:修改组(-g:修改GID;-n:修改组名)
文件权限
rwxrwx——UID读写执行;GID读写执行;其他用户读写执行
umask:默认文件权限由 666-umask 得到,目录由 777-umask 得到
chmod:改变文件权限(chmod 760 newfile(直接设置文件权限); chmod o+r newfile(其他用户增加读权限); chmod u-x newfile(拥有者去除执行权限);-R:递归的改变文件与子目录中的权限)
chown:改变文件属主(chown dan.shared newfile(改变对应属主和组);-R:递归改变)
chgrp:改变文件属组
共享文件
设置用户ID(SUID):该文件被执行时,进程的有效用户ID(EUID)被设置成该文件的所有者。即对系统其他文件的访问权限上升为当前文件拥有者对该文件的访问权限。
设置组ID(SGID):该文件被执行时,进程的有效组ID(EGID)被设置成该文件的所有者组。即对系统其他文件的访问权限修改为当前文件拥有者所在的组对该文件的访问权限。
粘着位:进程结束后文件还驻留在内存中(chmod g+s testdir)
mkdir testdir
chgrp shared testdir
chmod g+s testdir
ls -l
umask 002
cd testdir
touch newfile
ls -l
以上程序实现了在共享目录下创建新文件将沿用目录属组,而不是用户默认属组。