当前位置: 首页 > news >正文

女的男的做那个视频网站推广服务

女的男的做那个视频网站,推广服务,合肥学室内设计学校,百度站点管理问题#xff1a;user版本增加su 指令以后#xff0c;允许切换root用户#xff0c;但是#xff0c;root用户默认没有设置密码#xff0c;这样访问不安全。 需要增加root用户密码。 一、Linux账户管理 1.1 文件和权限 Linux一切皆文件。文件和目录都有相应的权限#x…问题user版本增加su 指令以后允许切换root用户但是root用户默认没有设置密码这样访问不安全。 需要增加root用户密码。 一、Linux账户管理 1.1 文件和权限 Linux一切皆文件。文件和目录都有相应的权限权限定义的基本格式 文件类型 所有者权限 用户组权限 其他用户权限 drwxr-xr-x 3 root root 4096 Aug 17 14:54 toolchain drwxr-xr-x 19 root root 4096 Aug 17 14:54 tools -rw-r--r-- 1 root root 21089672 Aug 18 16:06 u28081802.log drwxr-xr-x    toolchain 文件类型是d (文件夹) 所有者权限 rwx: 可读(r)可写(w)可执行(x)用户组权限r-x: 可读r可执行x。文件所有者是root, 用户组是 user。更加详情内容可以参考 一文带你学习Linux 中的文件权限概念和相关命令 - 知乎 (zhihu.com) 1.2 Linux账户系统 账号用户管理登录用户实现访问控制。 1.2.1 id命令 id命令用于查看用户和用户所在的组信息。 安卓系统查看系统用户信息 lahaina:/ # id uid0(root) gid0(root) groups0(root),1004(input),1007(log),1011(adb),1015(sdcard_rw),1028(sdcard_r),1078(ext_data_rw), 1079(ext_obb_rw),3001(net_bt_admin),3002(net_bt),3003(inet),3006(net_bw_stats),3009(readproc),3011(uhid) contextu:r:su: s0 lahaina:/ # id root uid0(root) gid0(root) groups0(root) contextu:r:su:s0 lahaina:/ # root用户uid0, 组id0, 所在的组root, SELinux策略上下文 u:r:su:s0 已经内置了root用户。还有其他的系统用户shell, adb等。 lahaina:/ # id shell uid2000(shell) gid2000(shell) groups2000(shell) contextu:r:su:s0 lahaina:/ #1.2.2 useradd命令 lahaina:/ # id root uid0(root) gid0(root) groups0(root) contextu:r:su:s0 useradd 命令用于创建新的用户 命令格式useradd [-选项] 用户名 常用选项 -u 指定用户UIDroot用户的uid0 -d 指定用户家目录一般用户目录, /home/[用户名], 可以通过cd ~到当前用户的家目录 -c 用户描述信息 -g 指定用户基本组, 用户组信息root的用户组 -G 指定用户附加组 -s 指定用户的shell #创建用户指定用户UID、描述信息、附加组 [rootlocalhost ~]# useradd -u 1600 -c yunwei -G test xiaozhang [rootlocalhost ~]# id xiaozhang uid1600(xiaozhang) gid1600(xiaozhang) 组1600(xiaozhang),1401(test)#/sbin/nologin 禁止用户登录系统 [rootlocalhost ~]# useradd -u 1800 -c test -s /sbin/nologin user8 user8:x:1800:1800:test:/home/user8:/sbin/nologin 更多信息请参考博文 https://zhuanlan.zhihu.com/p/561408502 查看用户家目录 rootubuntu:/etc/skel# cd ~ rootubuntu:~# pwd /root例如创建一个用户 test, 用户uid4000, 组 test。 注意如果用户组不存在请先创建用户组 rootubuntu:~# groupadd -g 4000 test rootubuntu:~# useradd -u 4000 -g test test rootubuntu:~# id uid0(root) gid0(root) groups0(root) 用户创建以后使用id查看不存在因为id默认只能查看系统用户。 id test能看到用户test信息。 rootubuntu:~# id test uid4000(test) gid4000(test) groups4000(test) 1.2.3 groupadd命令 groupadd [-g gid [-o]] [-r] [-f] 组名 -g gid group’s ID 值 .除非使用 -o -o--non-unique 参数不然该值必须是唯一 不可相同.数值不可为负。预设为最小不得小于500而逐次增加。 0~999 传统上是保留给系统账号使用。 -r--system 此 参数是用来建立系统账号。的 UID 会比定义在系统档上/etc/login.defs. 的 UID_MIN 来的小.注意 useradd 此法所建立的账号不会建立使用者目录也不会在乎纪录在 /etc/login.defs. 的定义值 . 如果你想要有使用者目录须额外指定。 -m 参数来建立系统账号。 这是 RED HAT 额外增设的选项。它会自动帮你选定一个小于999 的 gif 不需要 再加上 -g 参数。这是RED HAT 额外增设的选项。 -f--force 新增一个已经存在的群组账号系统会出现错误讯息然后结束groupadd .如果是这样的情况不会新增这个群组(如果 是这个情况下系统不会再新增一次)也可同时加上 -g--gid GID选项当你加上一个gid此时 gid 就不用是唯一值可不加 -o 参数建好群组后会显结果 . 例如创建一个分组 test, gid4000 rootubuntu:~# groupadd -g 4000 test 组 基本组初始组一个用户只允许有一个基本组 附加组在基本组之外组一个用户可以允许有多个附加组 用户---shell程序---内核---硬件 1.2.4 组信息保存 用户组信息保存在/etc/group文件 在Linux系统中当您使用groupadd命令添加新的组时组的名称和组IDGID会被保存在/etc/group文件中。这个文件是系统中所有组信息的存储库每个组的信息都以一行的形式列出通常遵循以下格式 group_name:x:GID:group_members其中 group_name 是组的名称。x 代表组密码的占位符实际上组密码很少使用所以通常是一个占位符。GID 是组的唯一标识符即组ID。group_members 是以逗号分隔的组成员用户名列表这是可选的。 例如如果您创建了一个名为“developers”的组并指定了GID为1002那么/etc/group文件中的对应行可能看起来像这样 developers:x:1002:此外组的密码信息如果设置会被保存在/etc/gshadow文件中这个文件包含了更加敏感的组账户信息。 rootubuntu:/etc# cat group | grep test test:x:4000:可以看到test用户组的组ID为4000. 1.2.5 用户基本信息存储 用户的基本信息存放在/etc/passwd文件我们通过查看/etc/passwd文件内容 可以看到当前系统所有的用户信息。 rootubuntu:/etc/default# cat /etc/passwd root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x:2:2:bin:/bin:/usr/sbin/nologin sys:x:3:3:sys:/dev:/usr/sbin/nologin sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/usr/sbin/nologin man:x:6:12:man:/var/cache/man:/usr/sbin/nologin lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin mail:x:8:8:mail:/var/mail:/usr/sbin/nologin news:x:9:9:news:/var/spool/news:/usr/sbin/nologin uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin proxy:x:13:13:proxy:/bin:/usr/sbin/nologin www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin backup:x:34:34:backup:/var/backups:/usr/sbin/nologin list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin systemd-timesync:x:100:102:systemd Time Synchronization,,,:/run/systemd:/bin/false systemd-network:x:101:103:systemd Network Management,,,:/run/systemd/netif:/bin/false systemd-resolve:x:102:104:systemd Resolver,,,:/run/systemd/resolve:/bin/false syslog:x:104:108::/home/syslog:/bin/false _apt:x:105:65534::/nonexistent:/bin/false lxd:x:106:65534::/var/lib/lxd/:/bin/false messagebus:x:107:111::/var/run/dbus:/bin/false uuidd:x:108:112::/run/uuidd:/bin/false dnsmasq:x:109:65534:dnsmasq,,,:/var/lib/misc:/bin/false sshd:x:110:65534::/var/run/sshd:/usr/sbin/nologin ubuntu:x:1000:1000:ubuntu,,,:/home/ubuntu:/bin/bash systemd-coredump:x:999:999:systemd Core Dumper:/:/usr/sbin/nologin tss:x:103:118:TPM software stack,,,:/var/lib/tpm:/bin/false pollinate:x:111:1::/var/cache/pollinate:/bin/false tcpdump:x:112:119::/nonexistent:/usr/sbin/nologin landscape:x:113:120::/var/lib/landscape:/usr/sbin/nologin fwupd-refresh:x:114:121:fwupd-refresh user,,,:/run/systemd:/usr/sbin/nologin avahi:x:115:122:Avahi mDNS daemon,,,:/var/run/avahi-daemon:/usr/sbin/nologin saned:x:116:124::/var/lib/saned:/usr/sbin/nologin colord:x:117:125:colord colour management daemon,,,:/var/lib/colord:/usr/sbin/nologin postfix:x:118:127::/var/spool/postfix:/usr/sbin/nologin id:x:1001:1001::/home/id:/bin/sh test:x:4000:4000::/home/test:/bin/sh rootubuntu:/etc/default# 对应对应用户的语法格式 用户名:密码占位符:UID:基本组GID:用户描述信息:家目录:解释器程序 root:x:0:0:root:/root:/bin/bash #每个字段含义解释用户名:密码占位符:UID:基本组GID:用户描述信息:家目录:解释器程序 UID0 超级用户 UID1-499 系统伪用户不能登录系统并且没有家目录 UID500-65535 普通用户 root:x:0:0:root:/root:/bin/bash root用户密码占位符(x)UID0基本组Gid(0),用户描述信息(“root”)家目录/root解释器程序/bin/bash 1.2.6 用户密码存储 用户密码信息文件/etc/shadow root:$6$Jj2oWJVC$Q8MdYyNNzy1q1zXP8tfHAoqc8gLNvEOMAMn90zdMnGaNurZNTVTaLNDIdjLDmjcRMAIwuEJyqZKsOVY14.i2k1:19584:0:99999:7::: daemon:*:18484:0:99999:7::: bin:*:18484:0:99999:7::: sys:*:18484:0:99999:7::: sync:*:18484:0:99999:7::: games:*:18484:0:99999:7::: man:*:18484:0:99999:7::: lp:*:18484:0:99999:7::: mail:*:18484:0:99999:7::: news:*:18484:0:99999:7::: uucp:*:18484:0:99999:7::: proxy:*:18484:0:99999:7::: www-data:*:18484:0:99999:7::: backup:*:18484:0:99999:7::: list:*:18484:0:99999:7::: irc:*:18484:0:99999:7::: saned:*:19587:0:99999:7::: colord:*:19587:0:99999:7::: postfix:*:19587:0:99999:7::: id:!:19688:0:99999:7::: test:!:19688:0:99999:7:::以冒号“”为分界线其含义是 daemon:*:18484:0:99999:7::: 第一段用户名 第二段加密密码。*:密码加密值口令字段存放的是加密后的用户口令如果为空则对应用户没有口令登陆时不需要口令*代表帐号被锁定双!!表示这个密码已经过期 那么代表什么含义呢 在这个上下文中! 在加密密码的位置表示该账户的密码被锁定。用户将无法使用密码登录系统。通常这是为了防止该用户通过密码认证的方式登录系统。这可能是因为账户已经被管理员禁用或者是一个仅用于运行服务的系统账户不应该被用来进行交互式登录。 密码的值的前缀代表的含义 $6$开头的表明是用SHA-512加密的 root:$6$Jj2oWJVC$Q8MdYyNNzy1q1zXP8tfHAoqc8gLNvEOMAMn90zdMnGaNurZNTVTaLNDIdjLDmjcRMAIwuEJy root用户有密码且密码储存值采用SHA-512加密后内容是“Jj2oWJVC$Q8MdYyNNzy1q1zXP8tfHAoqc8gLNvEOMAMn90zdMnGaNurZNTVTaLNDIdjLDmjcRMAIwuEJy” $1$表明是用MD5加密的 $2$是用Blowfish加密的 $5$是用SHA-256加密的 第三段上次密码更改日期最后一次修改时间从历史的某个时刻起到用户最后一次修改口令时的天数。时间起点对不同的系统可能不一样 第四段0密码更改最小天数 第五段99999密码更改最大天数 第六段密码警告天数提示你用户改密码时间7表示7天提示 第七段密码不活动天数超过不活动时间将冻结用户 第八段帐户过期日期帐号失效时间为空 第九段保留字段为空 test账户还没有设置密码不允许登录系统因为为“!”表示该账户的密码被锁定不允许通过test账号登录。 1.2.7 password命令 passwd命令修改用户密码 语法 passwd [选项] 用户名 选项 -S查询用户密码的状态也就是 /etc/shadow 文件中此用户密码的内容。仅 root 用户可用 -l暂时锁定用户该选项会在 /etc/shadow 文件中指定用户的加密密码串前添加 !使密码失效。仅 root 用户可用 -u解锁用户和 -l 选项相对应也是只能 root 用户使用 --stdin可以将通过管道符输出的数据作为用户的密码。主要在批量添加用户时使用 -n 天数设置该用户修改密码后多长时间不能再次修改密码也就是修改 /etc/shadow 文件中各行密码的第 4 个字段 -x 天数设置该用户的密码有效期对应 /etc/shadow 文件中各行密码的第 5 个字段 -w 天数设置用户密码过期前的警告天数对于 /etc/shadow 文件中各行密码的第 6 个字段 -i 日期设置用户密码失效日期对应 /etc/shadow 文件中各行密码的第 7 个字段。 查看我们创建的test用户的密码情况 rootubuntu:~# cat /etc/shadow | grep test test:!:19688:0:99999:7::: rootubuntu:~# 1.2.7.1 查看密码状态  rootubuntu:~# passwd -S test test L 11/27/2023 0 99999 7 -1 L密码被锁定。 -S选项会显示出密码状态这里的密码修改间隔时间、密码有效期、警告时间、密码宽限时间其实分别是 /etc/shadow 文件的第四、五、六、七个字段的内容。 当然passwd 命令是可以通过命令选项修改这几个字段的值的 1.2.7.2 设置用户密码 设置test账户密码为test。输入密码以后需要再次确认。 rootubuntu:~# passwd test New password: Retype new password: passwd: password updated successfully rootubuntu:~# 设置密码成功以后我们再看看test的密码状态。 rootubuntu:~# cat /etc/shadow | grep test test:$6$o24/ASQuJAKeuREZ$C6uufWweE/SlvDK18.8Gz9WoMZ5u72Wljy/gZFOYNDxONQzGJyq5NDQbPEfBtPXDQ8cSOCvczyfvAlvBTatdY.:19689:0:99999:7::: 通过test -S test查看密码状态  rootubuntu:~# passwd -S test test P 11/28/2023 0 99999 7 -1 密码最近修改时间 11/28/2023 距今密码最小更新天数为0密码最大更改天数为9999。密码不失效(-1)。 1.2.7.3 修改密码失效天数 设置密码最大60天有效20天更改 rootubuntu:~# passwd -x 60 -i 20 test passwd: password expiry information changed. rootubuntu:~# rootubuntu:~# rootubuntu:~# passwd -S test test P 11/28/2023 0 60 7 20设置以后看到密码60天有效密码20天失效。 1.2.7.4 采用账号密码登录 我们创建了test账户且设置了test密码就可以使用test登录系统。root用户切换到普通用户不需要校验密码。 rootubuntu:~# su test $ $ su Password: 可以看到登录成功。 1.2.7.5 验证密码哈希值 密码test的SHA-512的值是多少呢 ee26b0dd4af7e749aa1a8ee3c10ae9923f618980772e473f8819a5d4940e0db27ac185f8a0e1d5f84f88bc887fd67b143732c304cc5fa9ad8e6f57f50028a8ff 我们回到/etc/passwd的文件确认一下值是否是 $6$ee26b0dd4af7e749aa1a8ee3c10ae9923f618980772e473f8819a5d4940e0db27ac185f8a0e1d5f84f88bc887fd67b143732c304cc5fa9ad8e6f57f50028a8ff 对应的值为 test:$6$o24/ASQuJAKeuREZ$C6uufWweE/SlvDK18.8Gz9WoMZ5u72Wljy/gZFOYNDxONQzGJyq5NDQbPEfBtPXDQ8cSOCvczyfvAlvBTatdY.:19689:0:60:7:20:: 完全不相同 怎么解析账号密码呢 1.2.8 查看子用户UID rootubuntu:/etc# cat subuid lxd:100000:65536 root:100000:65536 ubuntu:165536:65536 id:231072:65536 test:296608:65536/etc/subuid保存了uid信息。 /etc/subuid 文件是在支持用户命名空间(user namespaces)的Linux系统中使用的它保存了子用户IDsubordinate user IDs的信息。这些子用户ID用于为特定的用户分配一组额外的用户ID这些用户ID可以在创建用户命名空间时使用通常与容器技术如Docker结合使用以提供隔离和安全性。 每行的格式通常如下 username:lower:countusername 是系统上的用户名。lower 是分配给该用户的第一个子用户ID。count 是从 lower 开始分配的用户ID数量。 例如如果 /etc/subuid 文件包含以下内容 linda:100000:65536这意味着用户 linda 被分配了从 100000 开始的 65536 个连续的用户ID范围是 100000-165535。这些ID可以在用户命名空间中作为用户ID使用而不会与系统上的其他用户ID冲突。 在容器化环境中这允许容器内的进程以不同的用户ID运行而这些用户ID在宿主机上实际上是非特权的从而增加了安全性。这是因为即使容器内的进程以 root 用户UID 0运行它在宿主机上也对应一个非特权的子用户ID因此它不会拥有宿主机上的 root 权限。 1.2.9 查看子用户gid信息 通过/etc/subgid查看GID信息 rootubuntu:/etc# cat subgid lxd:100000:65536 root:100000:65536 ubuntu:165536:65536 id:231072:65536 test:296608:65536二、密文生成和破解 2.1 密文结构 密文由 3 部分组成以”$”分隔第一部分为 ID第二部分为盐值第三部分为加密密文。 语法结构 $6$o24/ASQuJAKeuREZ$C6uufWweE/SlvDK18.8Gz9WoMZ5u72Wljy/gZFOYNDxONQzGJyq5NDQbPEfBtPXDQ8cSOCvczyfvAlvBTatdY. $ID$盐值$加密密文 test的ID是6盐值是$6$o24/ASQuJAKeuREZ 加密密文是“$6$o24/ASQuJAKeuREZ$C6uufWweE/SlvDK18.8Gz9WoMZ5u72Wljy/gZFOYNDxONQzGJyq5NDQbPEfBtPXDQ8cSOCvczyfvAlvBTatdY.” 2.1.1 ID ID表示加密算法取值如下 1 MD5 5 SHA-256 6 SHA-512 2.1.2 盐值 盐值就是使用随机字符码混合密码加密算法所产生的密码作用就是即使是同一个密码使用同一种加密方式所产生的密文值也不同。 2.1.3 加密密文 加密密文就是用户密码使用盐值对应对应的加密算法得到的加密密文。 2.2 手动生成加密密文 根据规则我们生成测试程序 sha_manual_encrypt.py #codingutf-8 import crypt passwd $6$o24/ASQuJAKeuREZ$C6uufWweE/SlvDK18.8Gz9WoMZ5u72Wljy/gZFOYNDxONQzGJyq5NDQbPEfBtPXDQ8cSOCvczyfvAlvBTatdY. salt $6$o24/ASQuJAKeuREZ # 盐值包括前面的ID cry_passwd crypt.crypt(test,salt) # test 是明文密码传入明文和盐值就可以生成密文了 print(cry_passwd) print(cry_passwd passwd)然后执行程序验证是否符合预期 rootubuntu:/sandstar_aosp/projects# python sha_manual_encrypt.py $6$o24/ASQuJAKeuREZ$C6uufWweE/SlvDK18.8Gz9WoMZ5u72Wljy/gZFOYNDxONQzGJyq5NDQbPEfBtPXDQ8cSOCvczyfvAlvBTatdY. True加密后的密文确认完全等于 原始加密密文。 因此我们的计算方式完全可行。 2.3 加密密文破解 # codingutf-8 import crypt shadow_file /etc/shadow # 获取系统密码路径 password_file /sandstar_aosp/projects/wordlist.txt # 自己的密码文件里面放的是明文密码 def get_pass(shadow_file):used {} # key是用户value是对应的密文f open(shadow_file, r) # 读取系统密码文件userline f.readlines() # 将该文件转换为列表格式f.close()for item in userline: # 遍历列表里的内容if len(item.split(:)[1]) 3: # 以:分割取第二个元素的长度也就是完整密文值的长度如果大于3我们认定它有密码把它取出来used[item.split(:)[0]] item.split(:)[1] # 我们将取出的密文给了相应的用户这里的used[i.split(:)[0]]是字典的key,也就是系统中的用户名后面的i.split(:)[1]是用户名后的加密密文return used # 提取自己的密码文件中的明文密码 def look_d(password_file):f open(password_file, r)mwlist f.readlines() # 将读取的内容转换为列表f.close()for i, item in enumerate(mwlist):mwlist[i] item.strip(\n) # 去除每一行的换行符return mwlist # 返回这个列表 # 根据密文是否相同判断出对应的用户和密码 def main(user_passfile, zidian):used get_pass(user_passfile) # 获取用户和对用的加密密文mingwen look_d(zidian) # 获取所有的明文密码for user in used:passwd used[user] # 一次遍历每个用户的密文salt $6$ passwd.split($)[2] # 获取盐值for passwdmw in mingwen: # 遍历系统中的每个完整密文if passwd crypt.crypt(passwdmw.rstrip(), salt): # 如果我们猜想的密文与系统中的密文相同输入它的用户名和密码print(userName:%s passWord:%s % (user, passwdmw.rstrip())) if __name__ __main__:main(shadow_file, password_file) wordlist.txt中存储猜测的密码。 111111 123456 test如果破解成功的话能够得到test的密码是test rootubuntu:/sandstar_aosp/projects# python sha_manual_decrypt.py userName:test passWord:test rootubuntu:/sandstar_aosp/projects# 程序执行以后我们得到了对应的密码破解账号test的密码是test破解成功。 参考博文 linux下SHA-512加密及暴力破解-蒲公英云 (dandelioncloud.cn) 三、内置用户和密码 通过上面的内容我们知道了用户信息的存储密码的存储。根据原理我们是否可以通过修改存储内容内置添加用户和密码而不需要通过执行useraddpasswd添加用户呢 增加一个内置用户cook(4100) cook(4100) 用户密码123456 3.1 内置增加一个用户 修改/etc/passwd,末尾添加cook用户信息。 cook用户名 UID4100 组ID4100 家目录/home/cook 解释程序/bin/sh cook:x:4100:4100::/home/cook:/bin/sh 添加以后我们查看cook账户信息 rootubuntu:/etc# id cook uid4100(cook) gid4100 groups4100 rootubuntu:/etc# id test uid4000(test) gid4000(test) groups4000(test)存在问题 我们看到组ID已经存在但是组名称不存在 怎么内置组cook参考【1.2.4 组信息保存】 3.2 内置组信息 需要内置组 cook 组ID4100 修改组文件/etc/group添加组cook cook:x:4100: 组 cook的组ID4100 添加完成我们再查询cook用户和组信息 rootubuntu:/etc# id cook uid4100(cook) gid4100(cook) groups4100(cook) rootubuntu:/etc# cook的组为cook, 组ID为4100达到预期完美。 3.3 内置用户密码 修改/etc/shadow需要添加cook的密码。 设置cook密码为123456随机数87 盐值$6$87/3iIoSW7IUA加密密文 $6$87/3iIoSW7IUA$u6M/4PgLWF9QhZdz9Su.zIGvB9SJc.ZpKDTiWENRyvnsW2MdgF6ho.YEVSZO.oAnSdcktzA1p3ZluMoMx7ZaS/ 将用户密码信息添加到/etc/shadow结尾。 cook:$6$87/3iIoSW7IUA$u6M/4PgLWF9QhZdz9Su.zIGvB9SJc.ZpKDTiWENRyvnsW2MdgF6ho.YEVSZO.oAnSdcktzA1p3ZluMoMx7ZaS/:19584:0:99999:7::: 用户名cook加密密码$6$87/3iIoSW7IUA$u6M/4PgLWF9QhZdz9Su.zIGvB9SJc.ZpKDTiWENRyvnsW2MdgF6ho.YEVSZO.oAnSdcktzA1p3ZluMoMx7ZaS/上次密码更改日期19688密码更改最小天数0密码更改最大天数99999密码警告天数7密码不活动天数为空帐户过期日期为空保留字段为空 cook用户的密码添加成功。 rootubuntu:/sandstar_aosp/projects# su cook $ root用户切换cook成功。 3.4 验证内置用户登录 采用cook用户账号登录。 用户登录成功。 $ whoami cook $ cook密码内置成功完美。 四、安卓账户体系 在Android开源项目AOSP中默认情况下root用户是没有密码的。在标准的Android系统中出于安全考虑普通应用无法获取root权限而且大多数设备的生产商也会锁定bootloader防止用户刷入自定义的、具有root访问权限的系统。 4.1 确认AOSP账户密码情况 当前ROM下的账户密码情况 存在分组文件/etc/group /etc/passwd但是内容为空。 不存在密码存储文件 /etc/shadow lahaina:/etc # cat /etc/group lahaina:/etc # cat /etc/passwd user版本没有vi命令且adb环境下不允许修改文件内容。 lahaina:/etc # echo root:x:0: /etc/group 根据【三、内置用户和密码】我们需要实现 添加root分组到 /etc/group添加root用户到 /etc/passwd创建密码保存文件/etc/shadow并且  添加用户密码到 /etc/shadow 这几个步骤就是内置root密码需要实现的步骤。  我们查看root账户的信息 1|lahaina:/etc # id root uid0(root) gid0(root) groups0(root) contextu:r:su:s0 我们看到root账户已经创建所属分组root分组id(0), 关联组root上下文SELinuxu:r:su:s0 与我们看到的Linux账号密码管理有些区别这是什么原因呢 内容信息没有保存却能够查看已经内置了账户信息 同理我们查看system用户 lahaina:/etc # id system uid1000(system) gid1000(system) groups1000(system) contextu:r:su:s0 4.2 Linux和Android用户账号信息区别 在Android Open Source Project (AOSP) 或任何基于Linux的Android系统中root账户和分组信息与传统的Linux系统有些不同因为Android对Linux内核进行了定制以及对用户和权限模型进行了调整以增强移动设备的安全性。 在传统的Linux系统中如前所述root账户和分组信息存储在 /etc/passwd 和 /etc/group 文件中。在Android系统中这些信息仍然存在但通常不直接用于访问控制。Android使用一种不同的权限模型每个应用都运行在其自己的用户ID下这些ID在安装应用时自动分配。 对于root用户即超级用户或管理员 UID: 在Android中root用户的UID是0这与传统的Linux系统一致。GID: root用户所属的主要组也通常是0表示超级用户组。 在标准的Android系统中这些信息并不存储在文件系统中的某个文件里而是在系统构建过程中硬编码到系统中。例如root用户的权限是由系统在启动时设置的而不是由存储在文件中的账户信息确定的。 对于分组信息Android定义了一系列的特殊组这些组用于控制对系统资源的访问。这些组的定义通常在系统的编译时确定并且与文件系统中的权限位和SELinux策略一起工作以实现安全模型。 在Android系统中如果你想查看用户和组的相关信息你可以通过访问系统的/data/system/packages.list 和 /data/system/packages.xml 文件来获取已安装应用的UID和GID信息。这些文件包含了应用的包名和分配给它们的UID。 对于开发者和那些有root权限的用户来说可以通过ADB shell或者终端模拟器应用来访问Android设备的shell并使用像id、ls -l这样的命令来查看文件的所有者和组信息。但是需要注意的是大多数商业Android设备默认情况下不允许用户访问root账户。 如果是这样要内置账户密码又该如何应对呢
http://www.zqtcl.cn/news/272569/

相关文章:

  • 温州网站的优化wordpress 注册邮箱验证失败
  • php网站开发实例视频教程宁波seo运营推广平台排名
  • 网络营销网站开发设计公司网站推广营销
  • 2015年做那个网站致富wordpress最新模板
  • 做网站开发平台北京广告公司有哪些
  • 郑州企业建站系统模板兰州需要做网站的公司有哪些
  • 怎样做网站卖东西 自己有货句容网络公司
  • 网站建设协议书 保密条款免费发布推广的网站
  • 网站首页外链上海网站建设联系方式
  • 陕西网站建设优化技术2023年1月热点新闻事件
  • 广东省建设银行招聘网站免费搭建个人网站
  • 知名商城网站建设公司wordpress主题 汉化
  • 网站上线做什么pc网站如何做移动适配
  • wap网站搭建北京北京网站建设
  • 放心的网站设计制作免费做logo设计的网站
  • 温州专业手机网站制作多少钱移动商城 网站建设方法方式
  • 周口网站开发wordpress
  • 如何查网站的备案号玉环在哪里做网站
  • 网站开发什么叫前端后端seo研究中心晴天
  • 邢台建筑类的建设网站代刷网站只做软件下载
  • 关于旅游的网站建设目的食品网站建设的目的
  • 开发php网站开发太湖网站建设推荐秒搜科技
  • 90设计网站怎么绑定手机号淘宝搜索排名
  • 无锡自助做网站哪些编程语言适合网站开发
  • 蒲城网站建设wzjseo北京专业推广公司
  • 阳春做网站外贸建站推广公司
  • 哪个网站的课件做的好源码之家关闭了
  • 各大网站热搜榜排名嵊州网站
  • 在哪找做网站的镇江网页设计工作室
  • 做网站的是干嘛的百度推广的几种方式