- Java锁的逻辑(结合对象头和ObjectMonitor)
- 还在用饼状图?来瞧瞧这些炫酷的百分比可视化新图形(附代码实现)⛵
- 自动注册实体类到EntityFrameworkCore上下文,并适配ABP及ABPVNext
- 基于Sklearn机器学习代码实战
如何查看 linux 计算机上有哪些账号呢?账号的信息储存在 /etc/passwd 中,打开就可以看到:
less /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
...
lighthouse:x:1000:1000::/home/lighthouse:/bin/bash
...
每一行代表一个账号的相关信息,用冒号分隔。除了安装时注册的个人账号和 root,还有 bin, daemon, adm, nobody 等各种系统账号,一般不需要管他.
第一列是账号名称,第二列是一个“x”,在老版本用来储存密码,现在密码移动到了 /etc/shadow 中,这一列就不再使用.
第三列代表这个用户的 UID。在 linux 中,用户名只是给人看的,机器储存用户数据都使用 UID。比如你修改了自己的 UID,而你的文件里储存的所有者还是原来的 UID,此时你的文件就不在属于你了。root 的 UID 是 0。普通用户的 UID 一般从 1000 开始.
第四列代表用户所属主要群组的群组 GID。第五列是该账号的文字说明(给人看的).
第六列代表这个用户的主文件夹。第七列代表该用户登录后取得的 shell 是哪个。其中有个特殊的 /sbin/nologin ,代表没有 shell,所以这些用户即使输入了账号密码也无法登陆.
接下来再看看管理密码的 /etc/shadow .
root:$1$GEIBZMzb$PEV.S1LMYYkII.YBGBOvL/:19370:0:99999:7:::
bin:*:17834:0:99999:7:::
daemon:*:17834:0:99999:7:::
adm:*:17834:0:99999:7:::
lp:*:17834:0:99999:7:::
sync:*:17834:0:99999:7:::
在这个文件中,第一列仍然是用户名,第二列就是密码了。不过这个密码是哈希加密过的,即使能看到,你也不能反推原文(不同distribution 和版本的加密算法有所不同)。如果一般用户忘记了密码,可以让 root 进行重置;如果忘记了 root 的密码,就只能使用单人维护模式登录重置了,但你并不能知道原来的密码.
之后几列都和密码过期提示有关,第三列代表最近更改密码的日期(Unix纪日法),第四列是密码更改的冷却时间,第五列表示密码强制更改的时间,第六列代表密码强制更改的时间的提醒时间。第七列代表密码过期的宽限时间。当密码时间到期时,再登陆会要求强制修改密码才能使用,如果宽限时间也到期,那这个密码就失效,再也不能登录了。99999天是273年,相当于永不过期.
第八列是账号失效日期,账号失效日期以后这个账号将被停用.
群组记录在 /etc/groups 里 。
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
...
第一列代表群组名称,第二列代表群组密码(仍然用 x 代替),第三列代表这个群组的 GID,第四列代表这个群组的成员.
一个群组包含多个用户,一个用户也可以加入多个群组,在 /etc/passwd 里,每个用户只记录了一个 GID,这个就是用户的初始组(initial group),默认和用户名相同,只有你一个人。而 /etc/groups 中这个群组第四列也不需要记录这个成员.
有效群组(effective group)则表示当前使用哪一个群组工作,它控制你新创建的文件属于哪个群组。使用 groups 命令可以查看你属于那些群组,其中第一个就是当前的有效群组。切换有效群组使用 newgrp 命令,这个命令会打开一个新shell,其中你的有效群组可以变更为其他群组.
各种指令可以用来创建新用户,需要 root 才能操作。 useradd 可以添加新用户。 passwd 可以给用户赋予密码 。
useradd test # 添加账号test
useradd 会写入/etc/passwd,shadow,group并创建主文件夹。在大部分 distribution 中,新用户默认会创建一个只有自己的群组作为初始群组.
useradd的参数可以配置用户的所有信息,包括 UID GID,主文件夹,shell等.
刚创建的账号暂时不可登录,用 passwd 可以给用户赋予密码.
passwd test
# 接下来键盘输入密码,或者使用--stdin接受管线输入
用户一般只能修改自己的密码,先输入旧密码,在输入新密码,PAM验证模块会保证你的密码强度(限制密码长度,限制密码和账号相同,限制常见单词)。root无需旧密码就可以修改,且没有任何限制.
usermod 用于编辑已存在的用户配置,参数和添加用户基本相同.
usermod [-cdegGlsuLU] test
-c: 账号说明
-d: 主文件夹
-L: 冻结密码
...
userdel 可以删掉一个用户。移除 passwd, shadow, group里的信息,清除主文件夹.
userdel test
输入 id 查看一个用户的信息.
id root
uid=0(root) gid=0(root) groups=0(root)
和用户类似,相应的命令可以添加,编辑,删除群组 。
groupadd tgroup
groupmod -n tgroupnew
groupdel tgroupnew
su 和 sudo 用来切换成其他账号身份执行命令.
su # 切换为 root(non-login)
su - # 切换为 root(login)
su test # 切换为 test(non-login)
su - test # 切换为 test(login)
接下来 su 需要对应用户的密码。sudo 则只需要自己的密码 。
sudo cat /etc/shadow # 以 root 身份执行命令
# 输入自己的密码
sudo -u www touch default # 以 www 身份创建文件
sudo -i # 登录 root 用户
sudo又不用输入root密码,有了 sudo,岂不是就跟root没区别了?实际上,sudo 的相关信息储存在 /etc/sudoer 中。这里写明了“哪些用户可以用sudo,用sudo可以做哪些指令,哪些指令需要密码确认”.
sudo vim /etc/sudoers
root ALL=(ALL) ALL
## Allows members of the 'sys' group to run networking, software,
## service management apps and more.
# %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
## Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL
lighthouse ALL=(ALL) NOPASSWD: ALL
# 代表注释,横排则代表一条信息。在我这里 root 可以随机执行sudo做任何事,lighthouse 也可以随意使用sudo,且不需要密码。%wheel代表 wheel 群组,这个群组的成员也可以随意执行sudo。有大量的信息被注释掉了备用,如果需要可以取消注释.
最后此篇关于linux基础(7)账号和群组的管理的文章就讲到这里了,如果你想了解更多关于linux基础(7)账号和群组的管理的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我正在使用 Django、django-allauth 和 django-invitations。我能够成功邀请用户加入平台,但我想将他们与邀请人的公司相关联。 我已经阅读了 bee-keeper/d
我正在使用 Django、django-allauth 和 django-invitations。我能够成功邀请用户加入平台,但我想将他们与邀请人的公司相关联。 我已经阅读了 bee-keeper/d
我一直在尝试向 Android 设备中的 Telegram 组添加一个机器人,但我无法这样做。我试过@bot_name、/bot_name,但它不起作用。 是否可以将机器人添加到组中,或者我应该使用
如何删除我刚刚创建的 Telegram 群组? 请注意,它是关于删除 Telegram 群组,而不是 Delete Message from Telegram Group Delete Telegra
Google groups settings SDK ( python ) 似乎在“任何人都可以请求”和“组织中的任何人都可以请求”加入权限之间没有区别。 whoCanJoin 权限参数仅允许以下值:
我有这个脚本: $limit1=10; $MySQL=mysql_connect($myhost,$myuser,$mypass); mysql_select_db($sitedb);
我正在设置一个 Wordpress 页面,我正在尝试自定义 buddypress 组的外观。我希望它们水平显示而不是垂直显示。谁能指导我完成?
我正在调查swampdragon chat_example .在 router.py 中,根据文档 get_subscription_channel 给出 channel 名称。 当我尝试更改重新运行
我正在开发一个新的网络平台,该平台有用户、组,这些用户可以获得成就(每个组都有自己的成就)来完成特定任务,这些是我目前拥有的表格: 用户 团体 Group_users (用于存储用户的组,因为用户可以
我想以编程方式将电子邮件地址添加到 Google 网上论坛。虽然有这样做的方法,但似乎没有一种方法允许添加显示名称、昵称或仅添加名字和姓氏。 例如,代码(来自 Add members to googl
我正在尝试在 Twilio 号码和其号码将使用 java 请求获得的两个或多个用户之间创建一个 WhatsApp 群组,Twilio 或 twiML 可以支持此功能以及如何支持吗? 我进行了搜索,但我
我的 Facebook 群组网址是:http://www.facebook.com/groups/284064464943140/我读到组 ID 在标有“id=”或“groupid=”的 Url 中,
我正在开发一个社交网络应用程序,我想创建一个 Activity 源,以便人们可以及时了解他们所有的联系(经典的 Facebook 流)。我有一个名为 activity 的数据库表设置如下: activ
按照此处的“创建群组帖子”示例通过 LinkedIn API 发布到群组时: https://docs.microsoft.com/en-us/linkedin/compliance/integrat
我们开发了一个使用 Graph API 与 Facebook 交互的系统。在本例中,我尝试在群组中发布消息,并且得到以下返回: 我在此图中的请求: v2.3/402998003100416/feed?
我要去的流程是: 用户使用 Facebook 登录我们的网站。 用户使用 PayPal 或一些类似的服务支付费用。 允许用户访问特定的 Facebook 群组。 我对这个过程的工作原理并不特别挑剔,但
请有人帮助我如何使用 PHP 在 linkedin 组中发布新讨论。如果有人提供示例,我将不胜感激。 感谢所有回复。 可爱的程序员:) 最佳答案 您可以在此处通过最新版本的 Simple-Linked
我想将用户输入发布到 Facebook 群组提要。使用“user_groups”权限登录可以正常工作。 如果我尝试将修复字符串发布到组提要,它可以正常工作,但是当我使用输入字段的字符串时,发布函数不会
如果我们可以将 WhatsApp 组连接到 Telegram 组并从 whatsapp 接收消息到 Telegram ,反之亦然,那就太好了。是否有任何机器人程序可以做到这一点。如何设置桥梁或类似的东
有没有办法使用“yammer API”创建私有(private)群组? 最佳答案 你可以使用下面的代码 yam.platform.request({ // ya
我是一名优秀的程序员,十分优秀!