linux用户权限管理
1基本概念
Linux是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号, 然后以这个账号的身份进入系统。 1.1 linux操作系统用户在linux中,用户分为两大类:管理员用户和普通用户,其中普通用户有分为系统用户和登录用户; 用户标识:user id,UID 通常使用16bits二进制数字表示(0-65535) 管理员的用户标识:0 普通用户:1-65535 系统用户:1-499(Centos6)、1-999(Centos7) 登录用户:500-60000(Centos6)、1000-60000(Centos7) linux通过名称解析库“/etc/passwd”文件解析用户名与用户ID之间的对应关系。 `~]# head /etc/passwd | column -ts:` 列按冒号对其查看 /etc/passwd:用户信息库 name:password:UID:GID:GECOS:directory:shell name: 用户名 password:可以是加密的密码,也可是占位符x; UID: GID:用户所属的主组的ID号; GECOS:注释信息 directory:用户的家目录; shell:用户的默认shell,登录时默认shell程序; 1.2 linux操作系统用户组在Linux中,用户组分类方式有三种: 1.3 linux操作系统密码用户在登录linux系统时,会对比password与之前保存在“/etc/shadow”、“/etc/gshadow”文件中的密码是否一致。 ~]# </dev/urandom tr -dc 0-9-A-Z-a-z-/|head -c ${1:-8};echo ~]# openssl rand -base64 32|tr A-Z a-z|cut -c 1-8 ~]# strings /dev/urandom | grep -o ‘[[:alnum:]]‘ | head -n 8 | tr -d ‘n‘; echo ~]# dd if=/dev/urandom bs=1 count=10 2>/dev/null | base64 -w 0 | rev | cut -b 2-9 | rev 加密算法(军备资源):算法+密码+salt=秘钥(使用秘钥对原文加解密操作): linux的密码加密方式使用单向加密算法,并且添加随机数(salt)计算得出的。 [[email?protected] ~]# head -1 /etc/shadow root:$6$ZNcau0h/$O396hKI/4ZAkVs/YfM82ViyToupcAQ3FMm.iP.7g73BuWoK7VjTnPOtpKA1u/P.8Y/eI.pCgeaBKm8XlPNw5h/:18071:0:99999:7::: 加密密码:使用$分隔,第一个段表示使用的加密算法,第二个段表示添加的salt。第三段表示加密后的密码.
1.4Linux安全上下文:运行中的程序:进程 (process) 2权限管理linux的文件管理权限分为读、写和执行 ]# ll grub.cfg -rw-rw-r--+ 1 root root 4253 Jun 24 11:44 grub.cfg 共分为五个部分: -rwxrwxrwx+: -:表示文件类型 左三位:定义user(owner)的权限 中三位:定义group的权限; 右三位:定义other的权限 +:是否启用facl 进程安全上下文: 进程对文件的访问权限应用模型: 进程的属主与文件的属主是否相同;如果相同,则应用属主权限; 否则,则检查进程的属主是否属于文件的属组;如果是,则应用属组权限; 否则,就只能应用other的权限; 权限: r:readable,读 w:writable,写 x:excutable,执行 权限对文件的作用: r:可获取文件的数据; w: 可修改文件的数据; x:可将此文件运行为进程; 权限对目录的作用: r:可使用ls命令获取其下的所有文件列表; w: 可修改此目录下的文件列表;即创建或删除文件; x: 可cd至此目录中,且可使用ls -l来获取所有文件的详细属性信息; mode:rwxrwxrwx ownership:user,group
3、相关命令3.1用户管理命令useradd命令{非常重要****}:创建用户useradd [选项] 登录名 注意:创建用户时的诸多默认设定配置文件为/etc/login.defs 操作系统厂家使用 useradd -D:显示创建用户的默认配置; 修改的结果保存于/etc/default/useradd文件中;可用自己使用 usermod命令:修改用户属性usermod [选项] 登录 -L,--lock:锁定用户密码;即在用户原来的密码字符串之前添加一个"!"; -U,--unlock:解锁用户的密码; userdel命令:删除用户userdel [选项] 登录 -r:删除用户时一并删除其家目录; id命令:显示用户的真实和有效的UID和GIDid [OPTION]… [USERNAME] -u:仅显示有效的UID; -g:仅显示用户的基本组的ID; -G:仅显示用户所属的所有组的ID; -n:显示名字而非ID;一般与g一起使用:-ng su命令:switch user登录式切换:会通过重新读取目标用户的配置文件来重新初始化 su - USERNAME su -l USERNAME 非登录式切换:不会读取目标用户的配置文件进行初始化 su USERNAME 注意:管理员可无密码切换至其它任何用户;其它用户在切换用户时必须输入密码。 -c “COMMAND”:仅以指定用户的身份运行此处指定的命令 例如:su - USERNAME -c “whoami” 3.2 用户组管理命令groupadd命令:添加组 groupadd [选项] group_name -g GID:指定GID,默认是上一个组的GID+1 -r:创建系统组; groupmod命令:修改组属性 groupmod [选项] GROUP -g GID:修改GID -n new_name:修改组名 groupdel 命令:删除组 groupdel [选项] GROUP 3.3 用户及用户组练习练习1:创建用户gentoo,UID为4001,基本组为gentoo,附加组为distro(GID为5000)和peguin(GID为5001); groupadd -g 5001 peguin groupadd -g 5000 distro useradd -u 4001 -G distro,peguin gentoo 练习2:创建用户fedora,其注释信息为"Fedora Core",默认shell为/bin/tcsh; useradd -c "Fedora Core" -s /bin/tcsh fedora 练习3:修改gentoo用户的家目录为/var/tmp/gentoo;要求其原有文件仍能被用户访问; usermod -d /var/tmp/gentoo/ gentoo 练习4:为gentoo新增附加组netadmin; groupadd netadmin usermod -aG netadmin gentoo
passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S] [--stdin] [username] (1) passwd:修改用户自己的密码; -l,-u:锁定和解锁用户; -d:清除用户密码串; -e DATE: 账户过期期限,日期; -i DAYS:密码非活动期限; -n DAYS:密码的最短使用期限; -x DAYS:密码的最长使用期限; -w DAYS:警告期限; --stdin【****批量修改密码】 echo "PASSWORD" | passwd --stdin USERNAME gpasswd命令:设置组密码 组密码文件:/etc/gshadow gpasswd [选项] group -a USERNAME:向组中添加用户 -d USERNAME:从组中移除用户 newgrp命令:临时切换指定的组为基本组;退出登录后切换就失效了 newgrp [-] [group] -: 会模拟用户重新登录以实现重新初始化其工作环境; newgrp a b 切换用户b的基本组为a,并登录,如果组a本来就不是用户b的附近组,此时可能要求输入组密码 chage命令:更改用户密码过期信息 chage [选项] 登录名 -d --lastday set date of last password change to LAST_DAY 最近日期 将最近一次密码设置时间设为“最近日期” 3.5 权限管理命令chmod命令: chmod [OPTION]... MODE[,MODE]... FILE... chmod [OPTION]... OCTAL-MODE FILE... chmod [OPTION]... --reference=RFILE FILE... 三类用户: u:属主 g:属组 o:其它 a: 所有 (1) chmod [OPTION]... MODE[,MODE]... FILE... MODE表示法: 赋权表示法:直接操作一类用户的所有权限位rwx; u= g= o= a= 授权表示法:直接操作一类用户的一个权限位r,w,x; u+,u- g+,g- o+,o- a+,a- (2) chmod [OPTION]... OCTAL-MODE FILE... 使用8进制的数字进行授权 (3) chmod [OPTION]... --reference=RFILE FILE... 选项: -R,--recursive:递归修改 注意:用户仅能修改属主为自己的那些文件的权限; 从属关系管理命令:chown,chgrp chown命令: chown [OPTION]... [OWNER][:[GROUP]] FILE... chown [OPTION]... --reference=RFILE FILE... 选项: -R:递归修改 chgrp命令: chgrp [OPTION]... GROUP FILE... chgrp [OPTION]... --reference=RFILE FILE... 注意:仅管理员可修改文件的属主和属组; 思考1:用户对目录有写权限,但对目录下的文件没有写权限时,能否修改此文件内容?能否删除此文件? 不能修改文件内容,但可删除文件 思考2:用户对目录有什么权限时,可以使用mv命令。 执行权限 umask:文件的权限反向掩码,遮罩码; 文件: 666-umask 目录: 777-umask 注意:之所以文件用666去减,表示文件默认不能拥有执行权限;如果减得的结果中有执行权限,则需要将其加1; umask命令: umask:查看当前umask umask MASK: 设置umask 注意:此类设定仅对当前shell进程有效; 练习:完成以下任务 useradd -rM -s /sbin/nologin mariadb 2、新建GID为5000的组mageedu,新建用户gentoo,要求其家目录为/users/gentoo,密码同用户名; groupadd -g 5000 mageedu mkdir -p /users useradd -d /users/gentoo gentoo echo gentoo | passwd --stdin gentoo 3、新建用户fedora,其家目录为/users/fedora,密码同用户名; useradd -d /users/fedora fedora echo fedora | passwd --stdin fedora 4、新建用户www,其家目录为/users/www;删除www用户,但保留其家目录; useradd -d /users/www www userdel www 5、为用户gentoo和fedora新增附加组mageedu; cp -rf /var/log /tmp chown -R :mageedu /tmp/log chmod -R g+w /tmp/log install命令: install - copy files and set attributes 单源复制: install [OPTION]... [-T] SOURCE DEST 多源复制: install [OPTION]... SOURCE... DIRECTORY install [OPTION]... -t DIRECTORY SOURCE... 创建目录: install [OPTION]... -d DIRECTORY... 常用选项: -m,--mode=MODE:设定目标文件权限,默认为755; -o,--owner=OWNER:设定目标文件属主; -g,--group=GROUP:设定目标文件属组; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |