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 指定,并且具有指定的权限。如果父目录不存在或者没有足够的权限来创建新的目录,则会导致创建失败。

浙公网安备 33010602011771号