mkdir系统调用

日志

type=SYSCALL msg=audit(1715262278.380:160553): arch=c000003e syscall=83 success=yes exit=0 a0=55c925c8e8a0 a1=1ed a2=0 a3=0 items=2 ppid=0 pid=1 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 comm="systemd" exe="/usr/lib/systemd/systemd" subj=unconfined key="my_syscall_watch"ARCH=x86_64 SYSCALL=mkdir AUID="unset" UID="root" GID="root" EUID="root" SUID="root" FSUID="root" EGID="root" SGID="root" FSGID="root"
type=CWD msg=audit(1715262278.380:160553): cwd="/"
type=PATH msg=audit(1715262278.380:160553): item=0 name="/sys/fs/cgroup/unified/user.slice/user-1000.slice/" inode=2000 dev=00:1d mode=040755 ouid=0 ogid=0 rdev=00:00 nametype=PARENT cap_fp=0 cap_fi=0 cap_fe=0 cap_fver=0 cap_frootid=0OUID="root" OGID="root"
type=PATH msg=audit(1715262278.380:160553): item=1 name="/sys/fs/cgroup/unified/user.slice/user-1000.slice/session-1975.scope" nametype=CREATE cap_fp=0 cap_fi=0 cap_fe=0 cap_fver=0 cap_frootid=0
type=PROCTITLE msg=audit(1715262278.380:160553): proctitle=2F7362696E2F696E69740073706C617368

 

type=SYSCALL msg=audit(1716473642.087:157815): arch=c000003e syscall=83 success=yes exit=0 a0=7fff4ee9542e a1=1ff a2=0 a3=557106eed930 items=2 ppid=175857 pid=186823 auid=1000 uid=1000 gid=1000 euid=1000 suid=1000 fsuid=1000 egid=1000 sgid=1000 fsgid=1000 tty=pts2 ses=3 comm="mkdir" exe="/usr/bin/mkdir" subj=unconfined key="my_syscall_watch"ARCH=x86_64 SYSCALL=mkdir AUID="randy" UID="randy" GID="randy" EUID="randy" SUID="randy" FSUID="randy" EGID="randy" SGID="randy" FSGID="randy"
type=CWD msg=audit(1716473642.087:157815): cwd="/home/randy/Desktop/test"
type=PATH msg=audit(1716473642.087:157815): item=0 name="/home/randy/Desktop/test" inode=1446948 dev=08:03 mode=040775 ouid=1000 ogid=1000 rdev=00:00 nametype=PARENT cap_fp=0 cap_fi=0 cap_fe=0 cap_fver=0 cap_frootid=0OUID="randy" OGID="randy"
type=PATH msg=audit(1716473642.087:157815): item=1 name="bb" inode=1443535 dev=08:03 mode=040775 ouid=1000 ogid=1000 rdev=00:00 nametype=CREATE cap_fp=0 cap_fi=0 cap_fe=0 cap_fver=0 cap_frootid=0OUID="randy" OGID="randy"
type=PROCTITLE msg=audit(1716473642.087:157815): proctitle=6D6B646972006262

 

分析

 创建目录。

转化a1 为8进制oct(int(a,16)),查看权限
'0o755'

 创建的目录为 

name="/sys/fs/cgroup/unified/user.slice/user-1000.slice/session-1975.scope" nametype=CREATE

构建WasGeneratedBy

系统调用原型

 

mkdir() 系统调用用于创建一个新的目录。下面是 mkdir() 的原型:

#include <sys/stat.h>
#include <sys/types.h>

int mkdir(const char *pathname, mode_t mode);

 

这里是 mkdir() 的参数说明:

  • pathname:表示要创建的目录的路径名。
  • mode:表示新创建目录的权限。在大多数情况下,你可以指定 mode 为 0777,表示允许读、写和执行权限对所有用户开放。实际权限会受到文件系统的限制以及 umask 的影响。

函数的返回值:

  • 如果成功,返回值为0。
  • 如果失败,返回值为-1,并设置 errno 来指示错误的原因。

调用 mkdir() 函数时,会在文件系统中创建一个新的目录,其路径由 pathname 指定,并且具有指定的权限。如果父目录不存在或者没有足够的权限来创建新的目录,则会导致创建失败。

 

posted @ 2024-05-23 22:23  zzl14  阅读(94)  评论(0)    收藏  举报