Linuxでは、各プロセスにいくつかのユーザーIDビットがありますが、これらのユーザーIDはファイルアクセスの許可をどのように設定しますか?この記事では、UNIXを例に挙げてUNIXがユーザーIDビットを設定する方法を簡単に紹介します。
ログイン
STAT機能付きファイルのステータス情報を取得するために、このようなプロトタイプは、次のとおり
INTスタット(CONSTのchar *経路、構造体STAT * BUF);
構造体statの構造:
struct stat {
dev_t st_dev; /*ファイルを含むデバイスのID * /
ino_t st_ino; /* inode番号* /
mode_t st_mode; /*保護* /
nlink_t st_nlink; /*ハードリンク数* /
uid_t st_uid; /*所有者のユーザーID * /
gid_t st_gid; /*所有者のグループID * /
dev_t st_rdev; /*デバイスID(特殊ファイルの場合)* /
off_t st_size; /*合計サイズ、バイト* /
blksize_t st_blksize; /*ファイルシステムI /Oのブロックサイズ* /
blkcnt_t st_blocks; /*割り当てられた512Bブロックの数* /
time_t st_atime; /*最終アクセス時刻* /
time_t st_mtime; /*最終修正時刻* /
time_t st_ctime; /*最終ステータス変更時刻* /
}; IDがST_UID、ファイルの所有者ID st_gid表現、および所有者のファイルを取得するために使用することができるの発信グループから
BUFパラメータ。
UNIXプロセスには、IDの概念がいくつかあります。これらは、実際のユーザーID、実際のユーザーグループID、実効ユーザーID、実効ユーザーグループIDなどです。プロセスを開始すると、通常、このプロセスの実効ユーザーIDはプロセスの実際のIDです(たとえば、私はericユーザーでログインします。この有効なユーザーは私のericに対応するIDです)。ただし、「設定ユーザーIDビット」がオンの場合、有効IDはプロセスのプログラムファイルに対応する所有者のIDです。
$ ls -l 1.txt
-rw ------- 1ルートルート16 April 29 14:31 1.txt
現在のディレクトリの下ファイル「1.txt」があり、所有者ルートであり、ルートのみが読み取りおよび書き込み権限を持っています。
1 int main()
2 {
3 int fd;
4 if((fd = open(' 1.txt'、 O_RDONLY))== -1)
5 {
6 printf('開くことができませんでした。\\ n');
7 exit(-1);
8}
9 char buf [1024] = {0};
10 read(fd、buf、1024);
11 printf(buf);
12 printf(' \\ n');
13}
まず、ターミナルでsuコマンドを使用してrootユーザーを使用します。 Gcc read.c - ドメイン。メインプログラムを入手してください。
#gcc read.c -omain
#exit
exit
$ main
開けませんでした。
明らかにmainの所有者もrootですが、メインプログラムはまだ "1.txt"を開くことができません。これは、メイン起動後のプロセスの実効IDがプロセスの実際のユーザーID(つまり、ericアカウントのID)であるためです。 ' 1.txt'はrootユーザーに対する読み取りおよび書き込みアクセス権しか持っていないので、openは失敗します。
メインユーザーIDビットを開いてシェルコマンドを開きます。chmod u + s main
cプログラムを使用します。メインコードは次のとおりです。
1 struct stat Buf = {0};
2 stat(' main'、& buf);
3 buf.st_mode
Linuxシステムには32ビットと64ビットのマシンがあることを私たち全員が知っていますが、それらの違いは何ですか?今日、XiaobianはLinux 32ビットマシンと64ビットマシンの基本的なデー
Fedoraの起動速度を上げるために、Fedoraの起動時のデフォルト設定を変更し、グラフィックモードからテキストモードに移行します。 Fedoraがテキストモードに入り始める方法を紹介しましょう。
Linuxシステムでは、複数の低速信号を1つの高速信号に結合するか、または高速信号を複数の低速信号に分解します。 Linuxでtmuxを使用することは、端末操作の効率
Cgroupフルネームコントロールグループをインストールして設定する方法は、プロセスグループの物理リソースを制限、記録、隔離するために使用できます。友達が来て学ぶことができます。 なぜcgroupが
Windows Server 2008 R2でのIIS 7の新しい改善
Win7の開くIEブラウザのポップアップ "Name:ocget.dll"プロンプトボックス
マイクロソフトは、システムのインストール時にWindows 8開発者向けプレビューのプロダクトキー
Win8は最適化によって頻繁にクラッシュする問題を解決しています。
NARUTO - ナルト - OL家主試験140層どのようにプレイするにはEarthlord試験140層クリアランスレイダース
Win 10のプレビューバージョン9901は「バースト」動的タイルの存在を確認しましたか?
PPSで映画をダウンロードできますか?PPSで映画をダウンロードする方法ah