Linux 用户权限设置和企业级管理实战 | 学习笔记

简介: 快速学习Linux 用户权限设置和企业级管理实战

开发者学堂课程【Linux企业运维实战 - 入门及常用命令Linux 用户权限设置和企业级管理实战】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/550/detail/7610


Linux 用户权限设置和企业级管理实战


内容介绍:

一、group 文件格式

二、文件操作

三、用户和组管理命令

四、用户创建 : useradd

五、创建用户 : useradd

六、用户属性修改

七、练习


一、group 文件格式

◆群组名称:就是群组名称

◆群组密码:通常不需要设定,密码是被记录在 /etc/gshadow

◆GID :就是群组的 ID

◆以当前组为附加组的用户列表(分隔符为逗号)

现在有个组叫 mage 组,想给 mage 组加口令怎么加呢,使用 gpasswd mage 命令就可以给 mage 加口令。

现在将 wang 账号临时加入 mage 组里,在加组之前现创建一个文件叫 wangfile1,查看文件在 wang 账号里,所属组就为 wang,使用 newgrp mage 命令再输入口令,现在查看 id,主组就变为了 mage,wang 组变成了附加组。

如果现在 wang 账号已经在 mage 组里了,再创建 wangfile2,mage 就变成了附加组。如果希望新建的文件主组为 mage,就使用 newgrp mage 让 mage 成为主组。

 

二、文件操作

◆vipw 和 vigr

◆pwck 和 grpck

 

Vipw 类似于 nano,是一个文本编辑工具,但是用 nano 改文件,有可能一不小心改错了,但是 vipw 有一个好处是拥有查询改错功能,就是说如果保存时改错了会自动报警,避免错误操作。

Vigr 修改的是 group 文件,相对来讲比较安全。

Pwck 和 grpck 是用来检查语法的,比如 nano 改了一个文件担心格式错误,可以用 pwck做语法检查,出现错误报警。Grpck 检查的是 group 的错误。

 

三、用户和组管理命令

◆用户管理命令

useradd

usermod

userdel

◆组帐号维护命令

groupadd

groupmod

groupdel

 

Useradd 意为创建用户

usermod 意为修改用户

userdel 意为删除用户;

Groupadd 意为创建组

groupmod 意为修改组

groupdel 意为删除组。

 

四、用户创建 : useradd

◆useradd [options] LOGIN

-u UID

-o 配合 -u 选项,不检查 UID 的唯一-性

-g GID :指明用户所属基本组,可为组名,也可以 GID

-c "COMMENT" :用户的注释信息

-d HOME_ DIR :以指定的路径(不存在)为家目录

image.png

-S SHELL :指明用户的默认 shell 程序

可用列表在 /etc/shells 文件中

-G GROUP1[,GROUP2...] :为用户指明附加组,组须事先存在

image.png

-N 不创建私用组做主组,使用 users 组做主组

image.png-r: 创建系统用户CentOS 6: ID<500 , CentOS 7: ID< 1000

-m 创建家目录,用于系统用户

-M 不创建家目录,用于非系统用户

 

Useradd 是一个外部路径,在 sbin 里面都是管理员文件,不能用普通用户账号执行。最简单的创建用户的方式就是 useradd 后面直接加用户名。

现在查看已经创建的账号已经排到了1003,新建账号应该排到1004,也可以超过他的范围。现在创建一个账号 xixi,使用命令 useradd –u 66666 xixi 就可以进行创建,使用 getent passwd xixi 命令就可以查看只和 xixi 相关的那一行,正常情况下创建的 id 按 id 最大的值顺序递增。

在生产中,有时候 id 号需要人为指定,比如说需要在某个服务器上创建一个给服务用的账号,而一个软件要部署到多个服务器上,这个账号要不止一个 id,比如说创建一个 app,命令 useradd app u 1234 就认为指定了 id 为1234,就可以在多个服务器上指定相同的id了。

如果要创建 id 相同的两个账号,需要加上 o 选项。

判断用户是否可以访问某个权限是根据用户的 id 而非用户名,id 相同就会认为是同一个用户。

-g 后面跟的是主组的 id,在创建账号的时候会自动新建主组,当然也可以指定不用它自动创建的,自己指定一个主组。

-c 是描述,用 chfn wang 命令就可以看到 wang 的描述信息。

使用 -d 可以指定路径为家目录,比如命令 useradd –d /data/app3home app3 就是指定 app3 的路径保存家目录,将来如果创建一个账号 mysql,mysql 对应有一个数据库文件,想把它放进一个目录里,就可以直接设置。

Shell 类型可以用 -s 来指定,比如说创建一个给服务用的账号,现在想创建 nginx 账号给应用程序使用,可以使用 useradd s /sbin/nologin r nginx 命令,系统就会自动给他分配在范围内的 id 号。

注意不加 -r 会自动创建家目录,加上 r 就不会。但是如果加上 r 又加上 m 就会认为的必须加上家目录。M 正好相反为强制不创建家目录。

 

五、创建用户 : useradd

◆默认值设定: /etc/default/useradd 文件中

◆显示或更改默认设置

useradd -D

useradd -D -S SHELL

useradd -D-b BASE_ DIR

useradd -D -g GROUP

 

useradd –D 可以显示创建文件时默认的配置内容,当然不仅可以查看,还可以修改内容,-s 修改 shell 类型,-b 把家目录改了,-g 可以修改组。

 

六、用户属性修改

◆usermod [OPTION] login

-u UID:新 UID

-g GID:新主组

-G GROUP1[,GROUP...[.GROUPN]]] :新附加组,原来的附加组将会被覆盖;若保留原有,则要同时使用 -a 选项

-S SHELL :新的默认 SHELL

-c 'COMMENT':新的注释信息

-d HOME:新家目录不会自动创建;若要创建新家目录并移动原家数据,同时使用-m选项

-l login_ name:新的名字;

-L: lock 指定用户,在 /etc/shadow 密码栏的增加!

-U: unlock 指定用户,将 /etc/shadow 密码栏的!拿掉

-e YYYY-MM-DD:指明用户账号过期日期

-f INACTIVE:设定非活动期限

 

七、练习

◆1、创建用户 gentoo,附加组为 bin 和 root,默认 shell 为 /bin/csh,注释信息为 "Gentoo Distribution"

 

◆2、创建下面的用户、组和组成员关系

名字为 webs 的组

用户 nginx 使用 webs 作为附属组

用户 varnish,也使用 webs 作为附属组

用户 mysql,不可交互登录系统,且不是 webs 的成员,nginx,varnish,mysql 密码都是 magedu。

 

答案:

1、创建用户 gentoo,附加组为 bin 和 root,默认 shell 为 /bin/csh,注释信息为 "Gentoo Distribution":

useradd -c " Gentoo Di stri bution" -G bin,root -s /bin/csh Gentoo

 

2、创建下面的用户、组和组成员关系

名字为 webs 的组:

groupadd webs

 

用户 nginx 使用 webs 作为附属组:

useradd -G webs nginx

 

用户 varnish,也使用 webs 作为附属组:

useradd -G webs varnish

用户 mysql,不可交互登录系统,且不是 webs 的成员,nginx,varnish,mysql 密码都是 magedu:

 

useradd -s / sbin/ nologin mysql

echo magedupasswd --stdin nginx

echo magedupasswd --stdin varnish

echo magedupasswd --stdin mysql

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
7月前
|
Ubuntu Linux 网络安全
在Linux云服务器上限制特定IP进行SSH远程连接的设置
温馨提示,修改iptables规则时要格外小心,否则可能导致无法远程访问你的服务器。最好在掌握足够技术知识和理解清楚操作含义之后再进行。另外,在已经配置了防火墙的情况下,例如ufw(Ubuntu Firewall)或firewalld,需要按照相应的防火墙的规则来设置。
395 24
|
7月前
|
Java 关系型数据库 MySQL
在Linux操作系统上设置JDK、Tomcat、MySQL以及J2EE后端接口的部署步骤
让我们总结一下,给你的Linux操作系统装备上最强的军队,需要先后装备好JDK的弓箭,布置好Tomcat的阵地,再把MySQL的物资原料准备好,最后部署好J2EE攻城车,那就准备好进军吧,你的Linux军团,无人可挡!
170 18
|
8月前
|
Linux Shell
在Linux、CentOS7中设置shell脚本开机自启动服务
以上就是在CentOS 7中设置shell脚本开机自启动服务的全部步骤。希望这个指南能帮助你更好地管理你的Linux系统。
705 25
|
监控 Oracle 关系型数据库
Linux平台Oracle开机自启动设置
【11月更文挑战第8天】在 Linux 平台设置 Oracle 开机自启动有多种方法,本文以 CentOS 为例,介绍了两种常见方法:使用 `rc.local` 文件(较简单但不推荐用于生产环境)和使用 `systemd` 服务(推荐)。具体步骤包括编写启动脚本、赋予执行权限、配置 `rc.local` 或创建 `systemd` 服务单元文件,并设置开机自启动。通过 `systemd` 方式可以更好地与系统启动过程集成,更规范和可靠。
832 2
|
Oracle Ubuntu 关系型数据库
Linux平台Oracle开机自启动设置
【11月更文挑战第7天】本文介绍了 Linux 系统中服务管理机制,并详细说明了如何在使用 systemd 和 System V 的系统上设置 Oracle 数据库的开机自启动。包括创建服务单元文件、编辑启动脚本、设置开机自启动和启动服务的具体步骤。最后建议重启系统验证设置是否成功。
427 1
|
关系型数据库 MySQL Linux
Linux系统如何设置自启动服务在MySQL数据库启动后执行?
【10月更文挑战第25天】Linux系统如何设置自启动服务在MySQL数据库启动后执行?
736 3
|
并行计算 Ubuntu Linux
Ubuntu学习笔记(三):Linux下操作指令大全
Ubuntu学习笔记,介绍了Linux操作系统中常用的命令和操作,如文件管理、系统信息查看、软件安装等。
233 3
|
Linux 数据安全/隐私保护
Linux中用户权限问题
【10月更文挑战第4天】
179 1
|
安全 Devops Shell
用户权限-Linux系统特殊权限
用户权限-Linux系统特殊权限
738 0
用户权限-Linux系统特殊权限
|
3月前
|
Linux 应用服务中间件 Shell
二、Linux文本处理与文件操作核心命令
熟悉了Linux的基本“行走”后,就该拿起真正的“工具”干活了。用grep这个“放大镜”在文件里搜索内容,用find这个“探测器”在系统中寻找文件,再用tar把东西打包带走。最关键的是要学会使用管道符|,它像一条流水线,能把这些命令串联起来,让简单工具组合出强大的功能,比如 ps -ef | grep 'nginx' 就能快速找出nginx进程。
475 1
二、Linux文本处理与文件操作核心命令