unix高级环境编程 系统数据文件与信息 --chap6

  • unix口令文件(POSIX.1称为用户数据库)/etc/passwd

    • 加密口令字段包含一个占位符,将实际的加密口令存放在另一个位置(maybe:/etc/shadow)
    • 口令文件中的字段可为空,若加密口令字段为空,则意味没有设置口令
    • shell字段包含一个可执行程序,被用作该用户登录shell;为了阻止一个特定的用户登录系统,可将此字段设为/dev/null、/bin/false、/bin/true等
    • nobody:x:65534:65534:nobody:/nonexistent:/bin/sh ; nobody用户名使任何人都可登录系统;但是其用户ID65534和组ID65534不提供任何权限,只能访问人人都可读写的文件
    • 给出用户名或数值用户ID,查询相关项:
      • struct passwd* getpwuid(uid_t uid)
      • struct passwd* getpwnam(const char* name)
    • 遍历整个口令文件:
      • struct passwd* getpwent(void):返回口令文件中的下一项,顺序与实现有关
      • void setpwent(void):反绕口令文件,从头开始
      • void endpwent(void):关闭相关文件
  • 阴影文件:/etc/shadow:

    • 访问接口:类似与口令文件的接口
      • struct spwd* getspnam(const char* name)
      • struct spwd* getspent(void)
      • void setspent(void)
      • void endspent(void)
  • 组文件:/etc/group

    • 接口:


  • 附加组ID:一个用户同时属于多个组;不仅仅可以属于口令文件记录项中组ID所对应的组,相应的文件访问权限检查被修改位:不仅将进程的有效用户ID与文件的组ID相比较,并且将附加组ID与文件的组ID进行比较
    • 接口:

  • 实现的区别:

  • 其他数据文件:

  • 登录帐号记录:utmp :记录当前登录的各个用户、wtmp:记录登录与注销时间;详见  man struct utmp;files:/var/run/utmp、/var/log/wtmp
  • POSIX.1定义uname函数,返回与当前主机和操作系统的有关信息
    • int uname(struct utsname* name)
  • 时间:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值