linux-user-group设置

本文详细介绍了在Linux系统中如何管理用户和用户组,包括如何创建用户和用户组,如何将用户添加到特定用户组中,以及如何更改用户的主用户组。

Linux系统中关于user和group的设置

在linux系统使用中对于目录的权限的管理越发的重要,有时候老板会提出/data1目录只有user01和user02有权限访问;/data2目录只有user02和user3有权访问;/data3目录只有user01和user03有权访问。如果您的老板提出这些问题,那么接下来的内容可以很好的帮您解决这些棘手的问题。

在linux中,分为用户和组两个概念。组(group)包含1个或多个用户(user),每个用户(user)至少在一个组(group)中。

关于组分为两类,第一类是主要用户组,第二类是附加用户组。关于用户账户及相关信息都存储在/etc/passw文件中,/etc/shadow和/etc/group文件存储了用户信息。

  • 增加一个新用户到附加用户组
    新增一个用户并将其添加到一个已有的用户组中,需要使用的命令useradd。如果没有这个用户组,可以先创建用户组。
    命令格式如下:
useradd -G {group-name} username

例如,创建一个新用户tony,将其添加到用户组IPD1中。
首先需要使用root身份登录系统中,先确认是否存在IPD1这个用户组,命令如下

grep IPD1 /etc/group

输出信息类似于

IPD1:x:1025

如果看不到任何输出,说明系统中还未创建IPD1这个用户组,需要使用groupadd命令创建用户组,命令如下

groupadd IPD1

然后创建用户tony,并将其加入到IPD1用户组

useradd -G IPD1 tony

为用户tony创建密码

passwd tony

两次输入密码即可
为确保已经将tony用户正确的添加到IPD1用户组中,可以查看该用户的属性,使用命令id,命令格式如下

id tony

输出信息类似于

uid=1021(tony) gid=1023(tony) groups=1023(tony),1025(IPD1)

该案例中使用的命令useradd,该命令的选项-G,是为将用户添加到一个附加用户组中,而同时还为此用户创建属于他自己的新组tony。如果将该用户同时添加到多个附加用户组中,可以使用英文逗号来分割,例如将tony添加到ftp,www,layou用户组中,命令如下

useradd -G ftp,www,layout tony
  • 增加一个新用户到主要用户组
    前面提到在创建用户时会自动的创建一个主要用户组,这是默认情况。其实可以指定该用户的主要用户组的。命令如下
useradd -g IPD1 tony
id tony

输出信息如下

uid=1021(tony) gid=1025(IPD1) groups=1025(IPD1)

请注意与前面的示例的区别,这里使用的参数是-g,此时的用户tony的主要用户组不在是tony,而是指定的用户组IPD1
小写字母-g将新增的用户初始化为指定登录组(主要用户组)。此组名必须已经存在。组号(gid)即是此已有组的组号。

  • 将一个已有用户增加到一个已有用户组中
    将一个已有用户tony增加到一个已有用户组IPD2中,使此用户组成为该用户的附加用户组,可以使用带-a参数的usermod 命令。
    -a代表append,也就是将用户添加到新用户组中而不必离开原有的其他用户组。不过需要与-G选项配合使用
usermod -a -G IPD2 tony

如果要同时将tony的主要用户组修改成IPD2,直接使用-g选项

usermod -g IPD2 tony

如果要将一个用户从某个组中删除,则

gpasswd -d user group

但是这个时候需要保证group不是user的主组

  • 附件:管理用户(user)和用户组(group)的相关工具或命令
    1、管理用户(user)的工具命令
useradd    #注:添加用户
adduser    #注:添加用户
passwd     #注:为用户设置密码
usermod    #注:修改用户命令,可以通过usermod 来修改登录名、用户的家目录等等;
pwcov      #注:同步用户从/etc/passwd 到/etc/shadow
pwck       #注:pwck是校验用户配置文件/etc/passwd 和/etc/shadow 文件内容是否合法或完整;
pwunconv   #注:是pwcov 的立逆向操作,是从/etc/shadow和 /etc/passwd 创建/etc/passwd ,然后会删除 /etc/shadow 文件;
finger     #注:查看用户信息工具
id         #注:查看用户的UID、GID及所归属的用户组
chfn       #注:更改用户信息工具
su         #注:用户切换工具
sudo       #注:sudo 是通过另一个用户来执行命令(execute a command as another user),su 是用来切换用户,然后通过切换到的用户来完成相应的任务,但sudo 能后面直接执行命令,比如sudo 不需要root 密码就可以执行root 赋与的执行只有root才能执行相应的命令;但得通过visudo 来编辑/etc/sudoers来实现;
visudo     #注:visodo 是编辑 /etc/sudoers 的命令;也可以不用这个命令,直接用vi 来编辑 /etc/sudoers 的效果是一样的;
sudoedit   #注:和sudo 功能差不多;

2、管理用户组(group)的工具或命令

groupadd    #注:添加用户组;
groupdel    #注:删除用户组;
groupmod    #注:修改用户组信息
groups      #注:显示用户所属的用户组
grpck
grpconv     #注:通过/etc/group和/etc/gshadow 的文件内容来同步或创建/etc/gshadow ,如果/etc/gshadow 不存在则创建;
grpunconv   #注:通过/etc/group 和/etc/gshadow 文件内容来同步或创建/etc/group ,然后删除gshadow文件;

备注:参考https://www.cnblogs.com/ronghui/p/8944804.html

(pangu0813) [root@develop-t0id7mpe-849db55fff-dpq6b latest]# ls -l total 28 dr-xr-xr-x 15 ma-user ma-group 4096 Jan 3 2025 aarch64-linux lrwxrwxrwx 1 ma-user ma-group 21 Jan 3 2025 acllib -> ../8.0.RC3.10/runtime lrwxrwxrwx 1 ma-user ma-group 17 Jan 3 2025 atc -> ../8.0.RC3.10/atc lrwxrwxrwx 1 ma-user ma-group 17 Jan 3 2025 bin -> aarch64-linux/bin lrwxrwxrwx 1 ma-user ma-group 22 Jan 3 2025 compiler -> ../8.0.RC3.10/compiler lrwxrwxrwx 1 ma-user ma-group 18 Jan 3 2025 conf -> aarch64-linux/conf lrwxrwxrwx 1 ma-user ma-group 23 Jan 3 2025 fwkacllib -> ../8.0.RC3.10/fwkacllib lrwxrwxrwx 1 ma-user ma-group 18 Jan 3 2025 hccl -> ../8.0.RC3.10/hccl lrwxrwxrwx 1 ma-user ma-group 21 Jan 3 2025 include -> aarch64-linux/include lrwxrwxrwx 1 ma-user ma-group 19 Jan 3 2025 lib64 -> aarch64-linux/lib64 lrwxrwxrwx 1 ma-user ma-group 17 Jan 3 2025 opp -> ../8.0.RC3.10/opp lrwxrwxrwx 1 ma-user ma-group 24 Jan 3 2025 opp_kernel -> ../8.0.RC3.10/opp_kernel lrwxrwxrwx 1 ma-user ma-group 17 Jan 3 2025 ops -> ../8.0.RC3.10/opp -rw-rw---- 1 ma-user ma-group 0 Jan 3 2025 platform.ini drwxr-xr-x 3 ma-user ma-group 4096 Jan 3 2025 python -r-xr-x--- 1 ma-user ma-group 4677 Jan 3 2025 remove_latest_softlink.sh lrwxrwxrwx 1 ma-user ma-group 21 Jan 3 2025 runtime -> ../8.0.RC3.10/runtime lrwxrwxrwx 1 ma-user ma-group 21 Jan 3 2025 toolkit -> ../8.0.RC3.10/toolkit drwxr-xr-x 2 ma-user ma-group 4096 Jan 3 2025 tools drwxr-xr-x 3 ma-user ma-group 4096 Jan 3 2025 var -rw-r--r-- 1 ma-user ma-group 900 Jan 3 2025 version.cfg (pangu0813) [root@develop-t0id7mpe-849db55fff-dpq6b latest]#
最新发布
08-20
从你提供的 `ls -l` 输出可以看出: > **当前目录 `/usr/local/Ascend/ascend-toolkit/latest` 下确实没有 `set_env.sh` 文件**。 但你看到了很多 **软链接(symbolic links)**,例如: ```bash lrwxrwxrwx 1 ma-user ma-group 22 Jan 3 2025 compiler -> ../8.0.RC3.10/compiler lrwxrwxrwx 1 ma-user ma-group 17 Jan 3 2025 bin -> aarch64-linux/bin ``` 这说明: > **`latest` 是一个软链接目录,它指向了 `8.0.RC3.10` 的实际安装目录**。 --- ## ✅结论 你当前所在的目录 `/usr/local/Ascend/ascend-toolkit/latest` 是一个 **软链接目录**,它本身不包含 `set_env.sh` 文件,你需要进入 **实际安装目录**: ```bash /usr/local/Ascend/ascend-toolkit/8.0.RC3.10 ``` 在这个目录下查找 `set_env.sh` 文件。 --- ## ✅建议操作流程 ### ✅1. 进入真实安装目录 ```bash cd /usr/local/Ascend/ascend-toolkit/8.0.RC3.10 ``` ### ✅2. 查看是否存在 `set_env.sh` ```bash ls -l | grep set_env.sh ``` 如果找不到,可以使用 `find`: ```bash find . -name set_env.sh ``` 常见路径包括: ``` ./set_env.sh ./bin/set_env.sh ./toolkit/bin/set_env.sh ``` --- ### ✅3. 如果找到了 `set_env.sh`,执行它 例如: ```bash source ./set_env.sh ``` 或者: ```bash source ./toolkit/bin/set_env.sh ``` --- ## ✅如果仍然找不到 `set_env.sh` 说明你的 Ascend Toolkit 安装 **不完整或损坏**,你可以尝试以下方式: ### 🔁 方法一:重新安装 Ascend Toolkit ```bash # 假设你有安装包 Ascend-toolkit-*.run chmod +x Ascend-toolkit-*.run ./Ascend-toolkit-*.run --install ``` ### 🔁 方法二:从容器中挂载或复制 如果你在容器中运行,宿主机上有完整安装包,可以挂载目录: ```bash docker run -v /usr/local/Ascend/ascend-toolkit/8.0.RC3.10:/opt/ascend ... ``` 然后在容器内: ```bash cd /opt/ascend source set_env.sh ``` --- ## ✅总结 | 问题 | 原因 | 解决方法 | |------|------|----------| | `set_env.sh` 找不到 | 当前目录是软链接目录,不是真实安装路径 | 切换到 `8.0.RC3.10` 真实目录查找 | | `set_env.sh` 不存在 | 安装不完整或损坏 | 重新安装 Ascend Toolkit | | 容器中找不到文件 | 挂载路径错误 | 检查挂载路径并重新设置环境变量 | --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值