JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
マニュアルページセクション 1: ユーザーコマンド     Oracle Solaris 11.1 Information Library (日本語)
このドキュメントの評価
search filter icon
search icon

ドキュメントの情報

はじめに

紹介

User Commands

acctcom(1)

adb(1)

addbib(1)

admin(1)

alias(1)

allocate(1)

amt(1)

appcert(1)

apptrace(1)

apropos(1)

ar(1)

arch(1)

as(1)

asa(1)

at(1)

atq(1)

atrm(1)

audioconvert(1)

audioctl(1)

audioplay(1)

audiorecord(1)

audiotest(1)

auths(1)

auto_ef(1)

awk(1)

banner(1)

basename(1)

basename(1B)

batch(1)

bc(1)

bdiff(1)

bfs(1)

bg(1)

biff(1B)

break(1)

builtin(1)

cal(1)

calendar(1)

case(1)

cat(1)

cd(1)

cdc(1)

cdrw(1)

chdir(1)

checkeq(1)

checknr(1)

chgrp(1)

chkey(1)

chmod(1)

chown(1)

chown(1B)

ckdate(1)

ckgid(1)

ckint(1)

ckitem(1)

ckkeywd(1)

ckpath(1)

ckrange(1)

ckstr(1)

cksum(1)

cktime(1)

ckuid(1)

ckyorn(1)

clear(1)

cmp(1)

col(1)

comb(1)

comm(1)

command(1)

compress(1)

continue(1)

cp(1)

cpio(1)

cpp(1)

cputrack(1)

crle(1)

crontab(1)

csh(1)

csplit(1)

ct(1C)

ctags(1)

ctrun(1)

ctstat(1)

ctwatch(1)

cu(1C)

cut(1)

date(1)

dc(1)

deallocate(1)

decrypt(1)

delta(1)

deroff(1)

df(1B)

dhcpinfo(1)

diff(1)

diff3(1)

diffmk(1)

digest(1)

digestp(1)

dircmp(1)

dirname(1)

dirs(1)

dis(1)

disown(1)

dispgid(1)

dispuid(1)

dos2unix(1)

dpost(1)

du(1)

du(1B)

dump(1)

dumpcs(1)

dumpkeys(1)

echo(1)

echo(1B)

ed(1)

edit(1)

egrep(1)

eject(1)

elfdump(1)

elfedit(1)

elffile(1)

elfsign(1)

elfwrap(1)

encrypt(1)

enhance(1)

env(1)

eqn(1)

errange(1)

errdate(1)

errgid(1)

errint(1)

erritem(1)

error(1)

errpath(1)

errstr(1)

errtime(1)

erruid(1)

erryorn(1)

eval(1)

ex(1)

exec(1)

exit(1)

expand(1)

export(1)

exportfs(1B)

expr(1)

expr(1B)

exstr(1)

factor(1)

false(1)

fastboot(1B)

fasthalt(1B)

fc(1)

fg(1)

fgrep(1)

file(1)

file(1B)

filebench(1)

filep(1)

filesync(1)

filofaxp(1)

find(1)

finger(1)

fmt(1)

fmtmsg(1)

fold(1)

for(1)

foreach(1)

franklinp(1)

from(1B)

ftp(1)

function(1)

gcore(1)

gencat(1)

geniconvtbl(1)

genmsg(1)

get(1)

getconf(1)

getfacl(1)

getlabel(1)

getopt(1)

getoptcvt(1)

getopts(1)

gettext(1)

gettxt(1)

getzonepath(1)

glob(1)

goto(1)

gprof(1)

grep(1)

groups(1)

groups(1B)

grpck(1B)

hash(1)

hashcheck(1)

hashmake(1)

hashstat(1)

head(1)

helpdate(1)

helpgid(1)

helpint(1)

helpitem(1)

helppath(1)

helprange(1)

helpstr(1)

helptime(1)

helpuid(1)

helpyorn(1)

hist(1)

history(1)

hostid(1)

hostname(1)

i386(1)

i486(1)

iconv(1)

if(1)

indxbib(1)

install(1B)

ipcrm(1)

ipcs(1)

isainfo(1)

isalist(1)

jobs(1)

join(1)

jsh(1)

kbd(1)

kdestroy(1)

keylogin(1)

keylogout(1)

kill(1)

kinit(1)

klist(1)

kmdb(1)

kmfcfg(1)

kpasswd(1)

krb5-config(1)

ksh(1)

ksh88(1)

ksh93(1)

ktutil(1)

kvno(1)

lari(1)

last(1)

lastcomm(1)

ld(1)

ldapadd(1)

ldapdelete(1)

ldaplist(1)

ldapmodify(1)

ldapmodrdn(1)

ldapsearch(1)

ldd(1)

ld.so.1(1)

let(1)

lex(1)

lgrpinfo(1)

limit(1)

line(1)

list_devices(1)

listusers(1)

llc2_autoconfig(1)

llc2_config(1)

llc2_stats(1)

ln(1)

ln(1B)

loadkeys(1)

locale(1)

localedef(1)

logger(1)

logger(1B)

login(1)

logname(1)

logout(1)

look(1)

lookbib(1)

lorder(1)

ls(1)

ls(1B)

m4(1)

mac(1)

mach(1)

machid(1)

madv.so.1(1)

mail(1)

Mail(1B)

mail(1B)

mailcompat(1)

mailp(1)

mailq(1)

mailstats(1)

mailx(1)

make(1S)

makekey(1)

man(1)

mconnect(1)

mcs(1)

mdb(1)

mesg(1)

mkdir(1)

mkmsgs(1)

mkstr(1B)

mktemp(1)

moe(1)

more(1)

mp(1)

mpss.so.1(1)

msgcc(1)

msgcpp(1)

msgcvt(1)

msgfmt(1)

msggen(1)

msgget(1)

mt(1)

mv(1)

nawk(1)

nc(1)

ncab2clf(1)

ncakmod(1)

neqn(1)

netcat(1)

newform(1)

newgrp(1)

newsp(1)

newtask(1)

nice(1)

nl(1)

nm(1)

nohup(1)

notify(1)

nroff(1)

od(1)

on(1)

onintr(1)

optisa(1)

pack(1)

packagemanager(1)

page(1)

pagesize(1)

pargs(1)

passwd(1)

paste(1)

patch(1)

pathchk(1)

pax(1)

pcat(1)

pcred(1)

perl(1)

pfbash(1)

pfcsh(1)

pfexec(1)

pfiles(1)

pfksh(1)

pflags(1)

pfsh(1)

pftcsh(1)

pfzsh(1)

pg(1)

pgrep(1)

pkcs11_inspect(1)

pkg(1)

pkgdepend(1)

pkgdiff(1)

pkgfmt(1)

pkginfo(1)

pkglint(1)

pkgmerge(1)

pkgmk(1)

pkgmogrify(1)

pkgparam(1)

pkgproto(1)

pkgrecv(1)

pkgrepo(1)

pkgsend(1)

pkgsign(1)

pkgtrans(1)

pkill(1)

pklogin_finder(1)

pktool(1)

plabel(1)

pldd(1)

plgrp(1)

plimit(1)

pmadvise(1)

pmap(1)

pm-updatemanager(1)

popd(1)

ppgsz(1)

ppriv(1)

pr(1)

praliases(1)

prctl(1)

preap(1)

print(1)

printenv(1B)

printf(1)

priocntl(1)

proc(1)

prof(1)

profiles(1)

projects(1)

prs(1)

prt(1)

prun(1)

ps(1)

ps(1B)

psig(1)

pstack(1)

pstop(1)

ptime(1)

ptree(1)

pushd(1)

pvs(1)

pwait(1)

pwd(1)

pwdx(1)

radadrgen(1)

ranlib(1)

rcapstat(1)

rcp(1)

read(1)

readonly(1)

red(1)

refer(1)

regcmp(1)

rehash(1)

remote_shell(1)

remsh(1)

renice(1)

repeat(1)

reset(1B)

return(1)

rksh(1)

rksh88(1)

rlogin(1)

rm(1)

rmail(1)

rmdel(1)

rmdir(1)

rmformat(1)

rmmount(1)

rmumount(1)

roffbib(1)

roles(1)

rpcgen(1)

rpm2cpio(1)

rsh(1)

runat(1)

rup(1)

rup(1C)

ruptime(1)

rusage(1B)

rusers(1)

rwho(1)

sact(1)

sar(1)

sccs(1)

sccs-admin(1)

sccs-cdc(1)

sccs-comb(1)

sccs-delta(1)

sccsdiff(1)

sccs-get(1)

sccs-help(1)

sccshelp(1)

sccs-prs(1)

sccs-prt(1)

sccs-rmdel(1)

sccs-sact(1)

sccs-sccsdiff(1)

sccs-unget(1)

sccs-val(1)

scp(1)

script(1)

sdiff(1)

sed(1)

sed(1B)

select(1)

set(1)

setenv(1)

setfacl(1)

setlabel(1)

setpgrp(1)

settime(1)

sftp(1)

sh(1)

shcomp(1)

shell_builtins(1)

shift(1)

shutdown(1B)

size(1)

sleep(1)

soelim(1)

sort(1)

sortbib(1)

sotruss(1)

source(1)

sparc(1)

spell(1)

spellin(1)

split(1)

srchtxt(1)

ssh(1)

ssh-add(1)

ssh-agent(1)

ssh-http-proxy-connect(1)

ssh-keygen(1)

ssh-keyscan(1)

ssh-socks5-proxy-connect(1)

stop(1)

strchg(1)

strconf(1)

strings(1)

strip(1)

stty(1)

stty(1B)

sum(1)

sum(1B)

sun(1)

suspend(1)

svcprop(1)

svcs(1)

switch(1)

symorder(1)

sys-suspend(1)

sysV-make(1)

t300(1)

t300s(1)

t4014(1)

t450(1)

tabs(1)

tail(1)

talk(1)

tar(1)

tbl(1)

tcopy(1)

tee(1)

tek(1)

telnet(1)

test(1)

test(1B)

tftp(1)

time(1)

timemanp(1)

times(1)

timesysp(1)

timex(1)

tip(1)

touch(1)

touch(1B)

tplot(1)

tput(1)

tr(1)

tr(1B)

trap(1)

troff(1)

true(1)

truss(1)

tset(1B)

tsort(1)

tty(1)

type(1)

typeset(1)

ul(1)

ulimit(1)

umask(1)

unalias(1)

uname(1)

uncompress(1)

unexpand(1)

unget(1)

unhash(1)

unifdef(1)

uniq(1)

units(1)

unix2dos(1)

unlimit(1)

unpack(1)

unset(1)

unsetenv(1)

until(1)

updatehome(1)

uptime(1)

userattr(1)

users(1B)

uucp(1C)

uudecode(1C)

uuencode(1C)

uuglist(1C)

uulog(1C)

uuname(1C)

uupick(1C)

uustat(1C)

uuto(1C)

uux(1C)

vacation(1)

val(1)

valdate(1)

valgid(1)

valint(1)

valpath(1)

valrange(1)

valstr(1)

valtime(1)

valuid(1)

valyorn(1)

vc(1)

vedit(1)

ver(1)

vgrind(1)

vi(1)

view(1)

vipw(1B)

volcheck(1)

volrmmount(1)

w(1)

wait(1)

wc(1)

what(1)

whatis(1)

whence(1)

whereis(1B)

which(1)

while(1)

who(1)

whoami(1B)

whocalls(1)

whois(1)

write(1)

xargs(1)

xgettext(1)

xstr(1)

yacc(1)

yes(1)

ypcat(1)

ypmatch(1)

yppasswd(1)

ypwhich(1)

zcat(1)

zlogin(1)

zonename(1)

zonestat(1)

ドキュメントの品質向上のためのご意見をください
簡潔すぎた
読みづらかった、または難し過ぎた
重要な情報が欠けていた
内容が間違っていた
翻訳版が必要
その他
Your rating has been updated
貴重なご意見を有り難うございました!

あなたの貴重なご意見はより良いドキュメント作成の手助けとなります 内容の品質向上と追加コメントのためのアンケートに参加されますか?

chmod

- ファイルのアクセス権モードの変更

形式

chmod [-fR] absolute-mode file...
chmod [-fR] symbolic-mode-list file...
chmod [-fR] acl_operation file...
chmod [-fR] [-@ named_attribute]...attribute_specification_list file...

機能説明

chmod ユーティリティーはファイルモードの変更や割り当てを行います。

chmod を使用すると、ファイルやディレクトリのアクセス制御リスト (ACL) の変更や、通常のファイル、ディレクトリ、および不透明な拡張属性ファイルのブール型読み書きシステム属性の変更も行えます。

絶対モード

絶対モードのコマンド行は、次の形式で指定します。

chmod [options] absolute-mode file . . .

ここで、absolute-mode は、以下のように定義されている 8 進数 nnnn を使用して指定します。

n

0 から 7 の数字を表します。絶対モードは、以下のモードのいくつかの論理和をとったものです。

4000

実行時にユーザー ID を設定します。

20 # 0

#753 または 1 のとき、実行時にグループ ID を設定します。

#642 または 0 のとき、強制ロックを許可します。

ディレクトリに対して使用されると、グループ ID の継承については BSD のセマンティクスに基づいてファイルが作成されます。このオプションを使用すると、そのディレクトリ中に作成されるファイルやサブディレクトリは、カレントプロセスのグループ ID ではなく、ディレクトリのグループ ID を引き継ぎます。ディレクトリの場合、setgid ビットをセットまたはクリアできるのはシンボリックモードを使用する場合だけです。

1000

スティッキビットをオンにします。chmod(2) 参照。

0400

所有者による読み取りを許可します。

0200

所有者による書き込みを許可します。

0100

所有者による実行 (ディレクトリ内での検索) を許可します。

0700

所有者による読み取り、書き込み、実行 (検索) を許可します。

0040

グループによる読み取りを許可します。

0020

グループによる書き込みを許可します。

0010

グループによる実行 (ディレクトリ内での検索) を許可します。

0070

グループによる読み取り、書き込み、実行 (検索) を許可します。

0004

その他のユーザーによる読み取りを許可します。

0002

その他のユーザーによる書き込みを許可します。

0001

その他のユーザーによる実行 (ディレクトリ内での検索) を許可します。

0007

その他のユーザーによる読み取り、書き込み、実行 (検索) を許可します。

ディレクトリに対して、絶対モードでは setgid のセットやクリアは行えません。シンボリックモードで g+s (または g–s) を使って行う必要があります。

シンボリックモード

シンボリックモードのコマンド行は、次の書式で指定します。

chmod [options] symbolic-mode-list file . . .

ここで、symbolic-mode-list は、次の形式のシンボリックモードの式をコンマで区切ったリスト (スペースを含めない) です。

[who] operator [permissions]

処理は、記述された順序で実行されます。1 つの演算子 (operator) のあとに permissions として複数のアクセス権文字を指定すると、その演算子で示された処理が同時に行われます。

who

ugoa の文字の 1 つ以上の組み合わせ (または省略) で、誰のアクセス権が変更または割り当てられるのかを指定します。

u

ユーザーのアクセス権

g

グループのアクセス権

o

その他のアクセス権

a

全アクセス権 (ユーザー、グループ、その他)

who が省略されると、デフォルトとして a と解釈されますが、ファイルモード作成マスク (詳細は sh(1) または csh(1)umask の項を参照) の設定値は考慮されます。who が省略されると、chmod はユーザーマスクの制限を置き換えません。

operator

アクセス権をどのように変更するかを指定する演算子で、+-= のいずれかです。

+

アクセス権を付加します。

permissions を省略すると、何も付加されません。

who が省略されると、対応するビットがファイルモード生成マスク中にセットされている場合を除き、permissions が示すファイルモードビットが付加されます。

who が指定されていれば、permissions が示すファイルモードビットが付加されます。

-

アクセス権を除去します。

permissions を省略すると、何も行われません。

who が省略されると、対応するビットがファイルモード生成マスク中にセットされている場合を除き、permissions が示すファイルモードビットをクリアします。

who が指定されていれば、permissions が示すファイルモードビットをクリアします。

=

指定されたアクセス権をそのまま割り当てます。

who が省略されると、すべてのファイルモードビットをクリアします。who が指定されていれば、who が示すファイルモードビットをクリアします。

permissions を省略すると、他には何も行われません。

who が省略されると、対応するビットがファイルモード生成マスク中にセットされている場合を除き、permissions が示すファイルモードビットが付加されます。

who が指定されていれば、permissions が示すファイルモードビットが付加されます。

= は、他のシンボリック演算子と違って、who が示す他のすべてのビットをリセットしてしまうという絶対的な効果があります。 permission の省略は、= を使用してすべてのアクセス権を除去するときのみ便利です。

permission

以下の文字の適切な組み合わせで指定します。

l

強制ロッキング

r

読み取り権

s

ユーザーまたはセットグループ ID

t

スティッキビット

w

書き込み権

x

実行権

X

実行権 (ファイルがディレクトリの場合、または他のユーザークラスのいずれかに実行権がある場合)

ugo

permission がそれぞれ現在のユーザー、グループ、 またはその他のモードから除去されることを意味します。

ファイルへのアクセス権は、ユーザー ID 番号 (UID) およびグループ ID 番号 (GID) によって異なります。アクセス権は、 3 つのユーザーモードがそれぞれ 3 つの文字を持つように記述されます。

ユーザー
グループ
その他
rwx
rwx
rwx

この例 (ユーザー、グループ、その他が、当該ファイルの読み取り、書き込み、 実行権を持っている) は、アクセス権を与える際の 2 つのカテゴリを示しています。1 つはアクセスクラス、もう 1 つはアクセス権そのものです。

文字 s は、u または g と一緒に指定したときのみ有効です。また、tu とのみ指定できます。

強制的なファイルおよびレコードのロック (l) は、プログラムがアクセスしている間、そのファイルの読み込み、書き込み権がロックされることを意味します。

セットグループ ID ビットがオンになっているディレクトリは、'ls –ld'-----s--- または -----l--- が出力されることで判定できますが、このようなディレクトリ中で ファイルやサブディレクトリを生成する際には、その親ディレクトリのセットグループ ID が与えられます。カレントプロセスのセットグループ ID ではありません。

グループ実行権を与えて、同時に実行時にファイルをロックすることはできません。さらに、セットグループ ID ビットをオンにして同時に実行時にファイルをロックすることはできません。したがって、以下の例は無効であり、エラーメッセージが出力されます。

chmod g+x,+l file
chmod g+s,+l file

ファイルまたはディレクトリの所有者 (またはスーパーユーザー) だけがそのファイルまたはディレクトリのモードを変更できます。スーパーユーザーだけがディレクトリでないファイルのスティッキビットを設定できます。スーパーユーザーでなければ、chmod はスティッキビットをマスクしますが、エラーは返しません。ファイルのセットグループ ID ビットをオンにするには、自分自身のグループ ID がファイルのそれと一致していて、さらにグループ実行権が設定されていなければなりません。

ACL 操作

アクセス制御リスト (ACL) とは、アクセス制御エントリ (ACE) のリストのことで、各エントリに特定クラスのユーザーのアクセス権が定義されています。ACE のリストには、ゼロから始まる番号が付けられています。ACL 内での ACE の位置は index と呼ばれます。このインデックスは、次に示す多くの chmod コマンドの引数として使用されます。ACL と ACE の詳細は、『Oracle Solaris 11.1 の管理: ZFS ファイルシステム』を参照してください。

chmod を含む Oracle Solaris ユーティリティーは、NFSv4 と新しい POSIX ドラフト ACL 仕様の両方をサポートします。これらの仕様に、acl_specification フィールドの構文と意味が詳しく説明されています。これら 2 つの ACL 仕様については、次の各サブセクションで説明します。

ACL 操作のコマンド行は、次の形式で指定します。

chmod [options] A[index]- file ...
chmod [options] A-acl_specification file ...
chmod [options] A[index]{+|=}acl_specification file ...

ここで、acl_specification は、次の形式のコンマ区切りのリスト (スペースを含まない) です:

A[index]+acl_specification

acl_specification に指定されたアクセス制御エントリ (ACE) を、ファイルの ACL の先頭に追加します。ファイルシステムによっては、ファイルへの適用時に ACL が並べ替えられることがあります。オプションの index が指定された場合、index の前に新しい ACE が挿入されます。

A-

ファイル上の現在の ACL に対するすべての ACE を削除し、そのファイルの現在のモードだけを表現した新しい ACL で現在の ACL を置き換えます。

Aindex-

index の番号で指定された ACE を削除します。

A-acl_specification

acl_specification で指定された ACE が現在のファイルの ACL 内に存在している場合、そのエントリを削除します。

A=acl_specification

ファイルの ACL 全体を acl_specification で置き換えます。

A[index]=acl_specification

ファイル上の現在の ACL 内で、特定のインデックス番号以降の ACE を置き換えます。ACE が複数指定された場合、acl_specification 内の後続の各 ACE によって、現在の ACL 内の対応する ACE が置き換えられます。

POSIX ドラフト ACL 仕様 (UFS でサポート)

UFS でサポートされる POSIX ドラフト ACL は、次のようにコロン (:) で区切られたフィールドとして指定されます。

user::perms

所有者のアクセス権。

user:username:perms

特定のユーザーのアクセス権。

group::perms

ファイルのグループメンバーのアクセス権。

group:groupname:perms

特定のグループのアクセス権。

other::perms

ファイル所有者やファイルグループのメンバー以外のユーザーのアクセス権。

mask:perms

ACL マスク。マスクエントリは、ユーザー (所有者以外) とグループに許可される最大のアクセス権を示します。

default:user::perms

所有者のデフォルトアクセス権。

default:user:username:perms

特定のユーザーのデフォルトアクセス権。

default:group::perms

ファイルのグループメンバーのデフォルトアクセス権。

default:group:groupname:perms

特定のグループのデフォルトアクセス権。

default:other:perms

ファイルの所有者やファイルグループのメンバー以外のユーザーのデフォルトアクセス権。

default:mask:perms

デフォルトの ACL マスク。

前述の指定方法を使えば、ACL を次のように指定できます。

user:tom:rw-,mask:rwx,group:staff:r-x
NFSv4 ACL 仕様 (NFSv4 と ZFS でサポート)

NFSv4 ACL は、より豊富な ACL セマンティックを提供します。これらは、許可エントリと拒否エントリの両方を提供するほか、より細粒度の高いアクセス権と拡張された継承制御を提供します。

NFSv4 ACL は、次のようにコロン (:) で区切られたフィールドとして指定されます。

owner@:<perms>[:inheritance flags]:<allow|deny>

ファイルの所有者のアクセス権。

group@:<perms>[:inheritance flags]:<allow|deny>

ファイルのグループメンバーのアクセス権。

everyone@:<perms>[:inheritance flags]:<allow|deny>

ファイルの所有者とグループメンバーを含むすべてのユーザーのアクセス権。

user:<username>:<perms>[:inheritance flags]:<allow|deny>

特定のユーザーのアクセス権。

usersid:<sid string>:<perms>[:inheritance flags]:<allow|deny>

特定のユーザーのアクセス権。ただし、ユーザーは SID で指定されます。

group:<groupname>:<perms>[:inheritance flags]:<allow|deny>

特定のグループのアクセス権。

groupsid:<sid string>:<perms>[:inheritance flags]:<allow|deny>

特定のグループのアクセス権。ただし、グループは SID で指定されます。

sid:<sid string>:<perms>[:inheritance flags]:<allow|deny>

特定の SID のアクセス権。ただし、この SID はユーザーまたはグループのどちらでもかまいません。

アクセス権を指定する際には、異なる 3 つの chmod ACL 形式を使用できます。 冗長、コンパクト、定位置です。冗長形式では、単語を使ってアクセス権を指定し、複数のアクセス権はスラッシュ (/) 文字で区切ります。コンパクト形式ではアクセス権文字を使用し、定位置形式ではアクセス権文字とハイフン (-) を使用します。ハイフンはアクセス権がないことを示します。

冗長モード用のアクセス権とコンパクトモードおよび定位置モード用の短縮形について、次に説明します。短縮形は括弧内に示しています。

read_data (r)

ファイルのデータを読み取る権限。

list_directory (r)

ディレクトリの内容を表示するためのアクセス権。

write_data (w)

ファイルのデータを変更する権限。ファイルのオフセット範囲内の任意の場所。

add_file (w)

ディレクトリに新しいファイルを追加するためのアクセス権。

append_data (p)

ファイルのデータを変更する機能。ただし、変更できるのは EOF 以降のみです。

現在、この権限はサポートされていません。

add_subdirectory (p)

ディレクトリにサブディレクトリを作成する権限。

read_xattr (R)

ファイルの拡張属性を読み取る機能。

write_xattr (W)

拡張属性を作成したり拡張属性ディレクトリに書き込んだりする機能。

execute (x)

ファイルを実行する権限。

read_attributes (a)

ファイルの基本属性 (ACL 以外) を読み取る機能。

write_attributes (A)

ファイルまたはディレクトリに関連付けられた時間を任意の値に変更するためのアクセス権。

delete (d)

ファイルを削除するためのアクセス権。

削除アクセス権の動作については、『Oracle Solaris 11.1 の管理: ZFS ファイルシステム』を参照してください。

delete_child (D)

ディレクトリ内のファイルを削除する権限。

削除アクセス権の動作については、『Oracle Solaris 11.1 の管理: ZFS ファイルシステム』を参照してください。

read_acl (c)

ファイルの ACL を読み取る権限。

write_acl (C)

ファイルの ACL を書き込む権限。

write_owner (o)

ファイルの所有者を変更する権限。

synchronize (s)

同期付きの読み取り権と書き込み権を使ってサーバー上のファイルにローカルアクセスする権限。

現在、この権限はサポートされていません。

コンパクト ACL 形式では、14 個の一意の文字を使ってアクセス権を指定します。

定位置 ACL 形式では、ls -V の形式に似た定位置引数として、アクセス権を指定します。ハイフン (-) は、その位置のアクセス権が許可されていないことを示しますが、このハイフンは省略可能であり、指定する必要があるのは必須文字だけです。

前述の文字は、定位置表記で指定する順番に並んでいます。

これらの文字を使えば、アクセス権を次のように指定できます。

rwx--D--------

ハイフンを削除すれば、文字列が次のようにコンパクトになります。

rwxD

いくつかの特殊アクセス権セットや別名もサポートされています。次のアクセス権セットの使用方法は、冗長アクセス権を指定する方法と同じです。

full_set

すべてのアクセス権。

modify_set

write_aclwrite_owner を除くすべてのアクセス権。

read_set

read_data、read_acl、read_attributes、および read_xattr

write_set

write_data、append_data、write_attributes、および write_xattr

省略可能な継承フラグの指定形式は 3 つあります。最初の形式では、単語を使ってさまざまな継承フラグを指定します。複数の継承フラグはスラッシュ (/) 文字で区切ります。

file_inherit (f)

新たに作成されたすべてのファイルに継承します。

dir_inherit (d)

新たに作成されたすべてのディレクトリに継承します。

inherit_only (i)

ディレクトリに対して指定された場合、そのディレクトリには適用せず、新たに作成されたファイルやディレクトリだけに適用します。このフラグを使用する際には、file_inherit または dir_inherit、あるいはその両方も指定する必要があります。

no_propagate (n)

ディレクトリ内のオブジェクトには ACL エントリを継承しますが、レベルが 1 つ下がった時点でその継承を停止すべきであることを示します。このフラグを使用する際には、file_inherit または dir_inherit、あるいはその両方も指定する必要があります。

前述の継承フラグは、コンパクト形式で指定することもでき、また、ls -V の形式に似た定位置引数として指定することもできます。定位置 ACL 形式でのハイフン文字は、その位置の継承フラグが指定されていないことを示します。

これらの文字を使って継承フラグを指定する場合、次のいずれの同等の方法を使ってもかまいません。

file_inherit/dir_inherit/no_propagate
fd-n--
fdn

この継承モデルを使えば、ACL エントリを次のように指定できます。

user:tom:read_data/write_data/read_attributes:file_inherit:allow
user:fred:read_data:file_inherit/dir_inherit:deny
user:bob:read_data:allow

属性操作

属性操作のコマンド行は、次の形式で指定します。

chmod [options] attribute_specification_list file ...

attribute_specification_list は、文字 S とそれに続く 1 つ以上の attribute_specifications のコンマ区切りのリストです。各 attribute_specification の形式を次に示します。

[operator]attribute_specifier

operator は次のいずれかです。

+

関連する attribute_specifier で指定された各属性は、attribute_specifier で指定された値に一致するように調整されます。

-

関連する attribute_specifier で指定された各属性は、attribute_specifier で指定された値の逆に一致するように調整されます。

=

関連する attribute_specifier で指定された各属性は、attribute_specifier で指定された値に一致するように調整されます。attribute_specifier で指定されていない、現在のファイルに関連付けられたブール型の読み書き拡張システム属性は、クリアされます。

attribute_specificationoperator が指定されていない場合、chmod+ が指定されているかのように動作します。

attribute_specifier は、次のいずれかの形式になります。

a

現在のファイルに関連付けられているすべてのブール型読み書き拡張システム属性を設定します。

c[compact_attribute_list]
c'{'compact_attribute_list'}'

compact_attribute_list で識別される各ブール型読み書き拡張システム属性を設定します。

v[verbose_attribute_setting]
v['{'verbose_attribute_setting_list'}']

verbose_attribute_setting で識別される各ブール型読み書き拡張システム属性を設定します。

compact_attribute_list は、このセクションで後述する属性名と略字のリストに記載されている、隣接するゼロ個以上の属性の略語のリストです。 compact_attribute_list には、任意の数のハイフン (-) を含めることができます。これらは無視されます。

verbose_attribute_setting は、このセクションで後述する属性名と略字のリストに記載されている属性名です。必要に応じて、その直前に no を指定することもできます。属性名を no なしで指定する場合は、その属性が設定されます。それ以外の場合は、属性がクリアされます。

verbose_attribute_setting_list は、ゼロ個以上の verbose_attribute_setting のコンマ区切りのリストです。

1 つのファイルに指定された複数の操作は累積され、そのすべてがファイルオペランドに対して 1 つの属性設定操作として設定されます。属性が attribute_specification_list 内で複数回指定されている場合、最後に指定された操作が適用されます。

次に属性名と略字のリストを示します。

属性名

略字

hidden

H

sparse

s

system

S

readonly

R

archive

A

nounlink

u

immutable

i

appendonly

a

nodump

d

av_quarantined

q

av_modified

m

オプション

サポートしているオプションは、次のとおりです。

-f

強制。chmod はファイルモードの変更に失敗しても何もしません。

-R

ディレクトリ引数を再帰的に検索して、各ファイルのモードを設定します。シンボリックリンクに出合うと、対象のファイルのモードが変更されます。しかし、再帰は発生しません。

-@ named_attribute

ファイルオペランド自体ではなく、各ファイルオペランドの名前付き拡張属性ファイルに対して属性操作を実行します。複数の -@ 操作が指定されている場合、名前付き属性ファイルのそれぞれに属性指定モードが適用されます。

名前付き属性 * は、chmod に伝えられると、ファイルオペランドに関連付けられたすべての拡張属性ファイルを意味すると見なされます。これは特殊ファイル . および .. を参照しません。

.. の名前付き属性は、 chmod に伝えられると、ファイルオペランド自体を意味すると見なされます。これにより、 chmod を 1 回呼び出して、ファイルオペランドの指定された名前付き属性ファイルおよびファイルオペランド自体に属性指定モードを適用することが可能になります。

オペランド

次のオペランドがサポートされています。

absolute-mode
symbolic-mode-list

file オペランドのいずれかで指定された各ファイルのファイルモードビットに加えられる変更を示します。詳細は、このマニュアルページの「機能説明」の項の「絶対モード」および「シンボリックモード」を参照してください。

acl_operation

ファイルの ACL で実行される変更内容を表現します。詳細は、「機能説明」の項の「AOL 操作」を参照してください。

acl_operation は次のいずれかです。

A[number] -
A-acl_specification
A[index]{+|=}acl_specification 
attribute_specification_list

ファイルの属性に対して実行される変更内容を表現します。詳細は、このマニュアルページの「機能説明」の項の「属性操作」を参照してください。

file

ファイルモードビットを変更するファイルのパス名

使用法

ファイルが 2 ギガバイト (231 バイト) 以上ある場合の chmod の動作については、largefile(5) を参照してください。

使用例

例 1 実行権を拒否する

次の例では、すべてのユーザーに対して実行権を拒否しています。

% chmod a-x file

例 2 読み取り専用アクセス権を許可する

次の例では、すべてのユーザーに対して読み取り権だけを許可しています。

% chmod 444 file

例 3 ファイルを読み取り可能かつ書き込み可能にする

次の例では、グループおよびその他のユーザーがファイルを読み書きできるようにしています。

% chmod go+rw file
% chmod 066 file 

例 4 ファイルをロックしてアクセスできないようにする

次の例では、ファイルをロックしてアクセスできないようにしています。

$ chmod +l file

例 5 ファイルの読み取り書き込み実行セットグループ ID の各アクセス権を許可する

次の例では、ファイルの読み取り権、書き込み権、および実行権をすべてのユーザーに対して許可するとともに、セットグループ ID をオンにしています。

$ chmod a=rwx,g+s file
$ chmod 2777 file

例 6 ZFS ファイル上で新しい ACL エントリを先頭に追加する

次の例では、ZFS ファイル上で新しい ACL エントリを先頭に追加しています。

まず、現在の ACL を表示します。

$ ls -v file.3
-rw-r--r--   1 marks    staff          0 Oct  9 15:49 file.3
      0:owner@:execute:deny
      1:owner@:read_data/write_data/append_data/write_xattr/
         write_attributes/write_acl/write_owner:allow
      2:group@:write_data/append_data/execute:deny
      3:group@:read_data:allow
      4:everyone@:write_data/append_data/write_xattr/execute/
        write_attributes/write_acl/write_owner:deny
      5:everyone@:read_data/read_xattr/read_attributes/read_acl/
         synchronize:allow

次のコマンドを入力します。

$ chmod A+user:lp:read_data:deny file.3

新しい ACL を表示します。

$ ls -v file.3
-rw-r--r--+  1 marks    staff          0 Oct  9 15:49 file.3
      0:user:lp:read_data:deny
      1:owner@:execute:deny
      2:owner@:read_data/write_data/append_data/write_xattr/
          write_attributes/write_acl/write_owner:allow
      3:group@:write_data/append_data/execute:deny
      4:group@:read_data:allow
      5:everyone@:write_data/append_data/write_xattr/execute/
          write_attributes/write_acl/write_owner:deny
      6:everyone@:read_data/read_xattr/read_attributes/read_acl/
          synchronize:allow

例 7 UFS ファイル上で新しい POSIX ドラフト ACL エントリを先頭に追加する

次の例では、UFS ファイル上で新しい POSIX ドラフト ACL エントリを先頭に追加しています。

まず、現在の ACL を表示します。

$ ls -v file.2
-rw-r--r--   1 marks    staff          0 Oct  9 15:52 file.2
      0:user::rw-
      1:group::r--           #effective:r--
      2:mask:r--
      3:other:r--

次のコマンドを入力します。

$ chmod A+user:lp:-wx file.2

新しい ACL を表示します。

$ ls -v file.2
-rw-r--r--+  1 marks    staff          0 Oct  9 15:52 file.2
      0:user::rw-
      1:user:lp:-wx          #effective:---
      2:group::r--           #effective:r--
      3:mask:r--
      4:other:r--

例 8 ZFS ファイル上で ACL エントリを特定の位置に挿入する

次の例では、ZFS ファイルシステム上で ACL エントリを特定の位置に挿入しています。また、コンパクト ACL 形式の使い方も示しています。

まず、ACL を表示し、新しい ACE の挿入位置を確認します。

% ls -V file.1
-rw-r--r--+  1 root     root           0 Oct  6 12:16 file.1
     user:lp:rw------------:------:allow
      owner@:--x-----------:------:deny
      owner@:rw-p---A-W-Co-:------:allow
      group@:-wxp----------:------:deny
      group@:r-------------:------:allow
   everyone@:-wxp---A-W-Co-:------:deny
   everyone@:r-----a-R-c--s:------:allow

次に、新しいエントリを位置 3 に挿入します。これにより、位置 3 から 6 に現在存在しているエントリが、下方に移動します。

次のコマンドを入力します。

$ chmod A3+user:marks:r:deny file.1

新しい ACL を表示します。

$ ls -V file.1
-rw-r--r--+  1 root     staff          0 Feb  3 14:13 file.1
     user:lp:rw------------:------:allow
      owner@:--x-----------:------:deny
      owner@:rw-p---A-W-Co-:------:allow
  user:marks:r-------------:------:deny
      group@:-wxp----------:------:deny
      group@:r-------------:------:allow
   everyone@:-wxp---A-W-Co-:------:deny
   everyone@:r-----a-R-c--s:------:allow

例 9 UFS ファイル上で POSIX ドラフト ACL を特定の位置に挿入する

このファイルシステムは、ACL をファイルシステム内に格納する際にその ACL を並べ替えます。次の例は、この動作を説明したものです。

$ ls -v file.1
-rw-r--r--+  1 root     root           0 Sep 29 16:10 file.1
      0:user::rw-
      1:user:lp:rw-          #effective:r--
      2:group::r--           #effective:r--
      3:mask:r--
      4:other:r--

ここで、インデックス位置 3 にエントリを挿入します。コマンドは機能しますが、ファイルシステムによって ACL が並べ替えられます。

$ chmod A3+user:marks:rw- file.1
$ ls -v file.1
-rw-r--r--+  1 root     root           0 Sep 29 16:10 file.1
      0:user::rw-
      1:user:lp:rw-           #effective:r--
      2:user:marks:rw-        #effective:r--
      3:group::r--            #effective:r--
      4:mask:r--
      5:other:r--

ACL エントリは、要求された位置 3 に実際には挿入されず、最終的に位置 2 に挿入されています。

例 10 ZFS ファイル上の ACL エントリを削除する

次の例では、ACL から lp エントリを削除しています。

$ ls -v file.3
-rw-r--r--+  1 marks    staff          0 Oct  9 15:49 file.3
      0:user:lp:read_data:deny
      1:owner@:execute:deny
      2:owner@:read_data/write_data/append_data/write_xattr/
         write_attributes/write_acl/write_owner:allow
      3:group@:write_data/append_data/execute:deny
      4:group@:read_data:allow
      5:everyone@:write_data/append_data/write_xattr/execute/
         write_attributes/write_acl/write_owner:deny
      6:everyone@:read_data/read_xattr/read_attributes/read_acl/
         synchronize:allow
$ chmod A-user:lp:read_data:deny file.3
$ ls -v file.3
-rw-r--r--   1 marks    staff          0 Oct  9 15:49 file.3
      0:owner@:execute:deny
      1:owner@:read_data/write_data/append_data/write_xattr/
         write_attributes/write_acl/write_owner:allow
      2:group@:write_data/append_data/execute:deny
      3:group@:read_data:allow
      4:everyone@:write_data/append_data/write_xattr/execute/
         write_attributes/write_acl/write_owner:deny
      5:everyone@:read_data/read_xattr/read_attributes/read_acl/
         synchronize:allow

例 11 UFS ファイル上の POSIX ドラフト ACL エントリを削除する

次の例では、ACL から lp エントリを削除しています。

$ ls -v file.2
-rw-r--r--+  1 marks    staff          0 Oct  9 15:52 file.2
      0:user::rw-
      1:user:lp:-wx           #effective:---
      2:group::r--            #effective:r--
      3:mask:r--
      4:other:r--
$ chmod A-user:lp:-wx file.2
$ ls -v file.2
-rw-r--r--   1 marks    staff          0 Oct  9 15:52 file.2
      0:user::rw-
      1:group::r--            #effective:r--
      2:mask:r--
      3:other:r--

例 12 ZFS ファイル上の特定の ACL エントリをインデックス番号を指定して削除する

次のような ACL があるとします。

$ ls -v file
    0:group:staff:read_data/write_data/execute/read_acl:allow
    1:user:bin:read_data:deny
    2:user:bin:read_data:allow
    3:owner@:write_data/append_data:deny
    4:owner@:read_data/write_xattr/execute/write_attributes/write_acl
        /write_owner:allow
    5:group@:write_data/append_data:deny
    6:group@:read_data/execute:allow
    7:everyone@:write_data/append_data/write_xattr/write_attributes
        /write_acl/write_owner:deny
    8:everyone@:read_data/read_xattr/execute/read_attributes/read_acl
        /synchronize:allow

bin に対する 2 つめのユーザーエントリを削除します。

$ chmod A2- file
$ ls -v file
    0:group:staff:read_data/write_data/execute/read_acl:allow
    1:user:bin:read_data:deny
    2:owner@:write_data/append_data:deny
    3:owner@:read_data/write_xattr/execute/write_attributes/write_acl
       /write_owner:allow
    4:group@:write_data/append_data:deny
    5:group@:read_data/execute:allow
    6:everyone@:write_data/append_data/write_xattr/write_attributes
       /write_acl/write_owner:deny
    7:everyone@:read_data/read_xattr/execute/read_attributes/read_acl
       /synchronize:allow

例 13 UFS ファイル上の特定の POSIX ドラフト ACL エントリを削除する

次の例では、次の ACL から lp エントリをインデックス番号を指定して削除しています。

$ ls -v file.1
-rw-r--r--+  1 root     root           0 Sep 29 16:10 file.1
      0:user::rw-
      1:user:lp:rw-              #effective:r--
      2:group::r--               #effective:r--
      3:mask:r--
      4:other:r--

      $ chmod A1- file.1
      $ ls -v
-rw-r--r--+  1 root     root           0 Sep 29 16:10 file.1
      0:user::rw-
      1:group::r--               #effective:r--
      2:mask:r--
      3:other:r--

例 14 ファイルから ACL をすべて削除する

次のコマンドは、NFSv4/ZFS ACL、POSIX ドラフト ACL のどちらでも動作します。

次のような ACL があるとします。

$ ls -v file.3
-rw-r--r--+  1 marks    staff          0 Oct  9 15:49 file.3
      0:user:lp:read_data/write_data:allow
      1:user:marks:read_acl:allow
      2:owner@:execute:deny
      3:owner@:read_data/write_data/append_data/write_xattr/
         write_attributes/write_acl/write_owner:allow
      4:group@:write_data/append_data/execute:deny
      5:group@:read_data:allow
      6:everyone@:write_data/append_data/write_xattr/execute/
         write_attributes/write_acl/write_owner:deny
      7:everyone@:read_data/read_xattr/read_attributes/read_acl/
         synchronize:allow

既存の ACL は実質的に削除され、ファイルのアクセス権ビットを表現した ACL で置き換えられます。

$ chmod A- file.3
$ ls -v file.3
-rw-r--r--  1 marks    staff          0 Oct  9 15:49 file.3
     0:owner@:execute:deny
     1:owner@:read_data/write_data/append_data/write_xattr/
        write_attributes/write_acl/write_owner:allow
     2:group@:write_data/append_data/execute:deny
     3:group@:read_data:allow
     4:everyone@:write_data/append_data/write_xattr/execute/
        write_attributes/write_acl/write_owner:deny
     5:everyone@:read_data/read_xattr/read_attributes/read_acl/
       synchronize:allow

例 15 ZFS ファイル上の ACL エントリ全体を置き換える

ACL の全体を置き換えるには、次の chmod 構文を使用します。

$ chmod A=owner@:read_data/write_data:allow,group@:read_data/
               write_data:allow,user:lp:read_data:allow file.4
$ ls -v file.4
-rw-rw----+  1 marks    staff          0 Oct  9 16:12 file.4
       0:owner@:read_data/write_data:allow
       1:group@:read_data/write_data:allow
       2:user:lp:read_data:allow

例 16 UFS ファイル上の POSIX ドラフト ACL 全体を置き換える

この操作のほうが多少複雑になっています。置換 ACL には、ファイルの所有者、グループ所有者、その他のユーザー、およびマスクを表現するために必要なエントリと、ほかに設定する必要のあるすべてのエントリを含める必要があります。

$ chmod A=user::rw-,group::rw-,other::---,mask:r--,
              user:lp:r-- file.3
$ ls -v file.3
-rw-r-----+  1 root     root           0 Oct  9 16:14 file.3
        0:user::rw-
        1:user:lp:r--        #effective:r--
        2:group::rw-         #effective:r--
        3:mask:r--
        4:other:---

例 17 ZFS ファイル上の特定のエントリを置き換える

次のような ACL があるとします。

$ ls -v file.5
-rw-r--r--+  1 marks    staff          0 Oct  9 16:18 file.5
     0:user:marks:read_data:allow
     1:owner@:execute:deny
     2:owner@:read_data/write_data/append_data/write_xattr/
        write_attributes/write_acl/write_owner:allow
     3:group@:write_data/append_data/execute:deny
     4:group@:read_data:allow
     5:everyone@:write_data/append_data/write_xattr/execute/
        write_attributes/write_acl/write_owner:deny
     6:everyone@:read_data/read_xattr/read_attributes/read_acl/
        synchronize:allow

ここで、ユーザー marks のアクセスタイプを、許可から拒否に変更します。

$ chmod A0=user:marks:read_data:deny file.5
$ ls -v file.5
-rw-r--r--+  1 marks   staff          0 Aug 23 09:11 file.5
0:user:marks:read_data:deny 
1:owner@:read_data/write_data/append_data/write_xattr/write_attributes
     /write_acl/write_owner:allow
2:group@:write_data/append_data/execute:deny
3:group@:read_data:allow
4:everyone@:write_data/append_data/write_xattr/execute/write_attributes
     /write_acl/write_owner:deny
5:everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize
     :allow

例 18 UFS ファイル上の特定の POSIX ドラフト ACL エントリを置き換える

次のような ACL があるとします。

$ ls -v file.4
-rw-r--r--+  1 marks    staff          0 Oct  9 16:21 file.4
        0:user::rw-
        1:user:lp:rwx         #effective:r--
        2:group::r--          #effective:r--
        3:mask:r--
        4:other:r--

ここで、lp のアクセス権を、rwx から r-- に変更します。

$ chmod A1=user:lp:r-- file.4

$ ls -v file
-rw-r--r--+  1 marks    staff          0 Oct  9 16:21 file.4
        0:user::rw-
        1:user:lp:r--         #effective:r--
        2:group::r--          #effective:r--
        3:mask:r--
        4:other:r--

例 19 ZFS ファイル上で ACL 継承フラグを設定する

継承フラグを設定できるのは、ZFS ファイルの場合だけです。ACL をディレクトリに対して設定する場合には、いくつかの継承フラグがオプションで設定できます。

ユーザー lp に対するある ACL エントリを、ディレクトリ内で新たに作成されたファイルに継承する必要があると想定します。まず、継承可能な ACL エントリをディレクトリ上に作成する必要があります。

$ chmod A+user:lp:read_data:file_inherit:allow test.dir
$ ls -dv test.dir
drwxr-xr-x+  2 marks   staff          2 Aug 23 09:08 test.dir/
0:user:lp:read_data:file_inherit:allow
1:owner@::deny 
2:owner@:list_directory/read_data/add_file/write_data/add_subdirectory
     /append_data/write_xattr/execute/write_attributes/write_acl
     /write_owner:allow
3:group@:add_file/write_data/add_subdirectory/append_data:deny
4:group@:list_directory/read_data/execute:allow 
5:everyone@:add_file/write_data/add_subdirectory/append_data/write_xattr
     /write_attributes/write_acl/write_owner:deny
6:everyone@:list_directory/read_data/read_xattr/execute/read_attributes
     /read_acl/synchronize:allow

この lp エントリは、ディレクトリ test.dir 内で新たに作成されたファイルに継承されます。

$ touch test.dir/file.test
$ ls -v test.dir/file.test
-rw-r--r--+  1 marks    staff          0 Oct  9 16:29 test.dir/file.test
     0:user:lp::deny
     1:user:lp:read_data:allow
     2:owner@:execute:deny
     3:owner@:read_data/write_data/append_data/write_xattr/
         write_attributes/write_acl/write_owner:allow
     4:group@:write_data/append_data/execute:deny
     5:group@:read_data:allow
     6:everyone@:write_data/append_data/write_xattr/execute/
         write_attributes/write_acl/write_owner:deny
     7:everyone@:read_data/read_xattr/read_attributes/read_acl/
 synchronize:allow

ユーザー lp のエントリが、新たに作成されたファイルに継承されています。複数の継承フラグの組み合わせを指定することが可能です。たとえば、lp エントリがディレクトリにも継承されるようにするには、次のようなコマンドを使用します。

$ chmod A+user:lp:read_data:file_inherit/\
      dir_inherit:allow test.dir

例 20 ZFS ファイルのシステム属性を置換する

次の例では、ZFS ファイルのシステム属性を置換します。

$ chmod S=v{archive,hidden,readonly,system,appendonly,\
     nonodump,immutable,noav_modified,noav_quarantined,\
     nounlink} file1

または

$ chmod S=c{AHRSaiu} file1

または

$ chmod S=c{AHRSa-i--u} file1

または

$ chmod S=cAHRSaiu file1

または

$ chmod -@ '..' S=cAHRSaiu file1

適切な特権を前提として、file1 のシステム属性 archivehiddenreadonlysystemappendonlyimmutable、および nounlink が設定されます。適切な特権を前提として、file1 のシステム属性 nodumpav_modified、および av_quarantined がクリアされます。

例 21 ZFS ファイルのすべてのシステム属性をクリアする

次の例では、ZFS ファイルのシステム属性をすべてクリアします。

$ chmod S-a file1

または

$ chmod -@ '..' S-a file1

適切な特権を前提として、file1 のブール型読み書きシステム属性がすべてクリアされます。

例 22 ZFS ファイルの名前付き属性ファイルのシステム属性を設定する

次の例では、ZFS ファイル自体ではなく、ZFS ファイルの名前付き属性ファイルのシステム属性を設定します。

$ chmod -@ myattr S+vhidden file1

これにより、隠しシステム属性が、ファイル file1 自体ではなく、その名前付き属性ファイル myattr に設定されます。

例 23 ZFS ファイルのすべての名前付き属性ファイルのシステム属性を設定する

次の例では、ZFS ファイル自体ではなく、ZFS ファイルのすべての名前付き属性ファイルのシステム属性を設定します。

$ chmod -@ '*' S+a file1

例 24 ZFS ファイルのすべての名前付き属性ファイルのシステム属性を設定する

次の例では、ZFS ファイルのすべての名前付き属性ファイル、および ZFS ファイル自体のシステム属性を設定します。

$ chmod -@ '..' -@ '*' S+vhidden file1

これにより、file1 のすべての名前付き属性ファイル、およびそのファイル自体に対して隠しシステム属性が設定されます。

例 25 ディレクトリ階層を再帰的に検索する

次の例では、ディレクトリ階層を再帰的に検索して、すべての名前付き属性ファイル、ZFS ファイルオペランド、およびディレクトリ自体のシステム属性をすべて設定します。

$ chmod -R -@ '..' -@ '*' S+a directory1

これにより、directory1 のディレクトリ階層内にあるすべての通常ファイルおよびディレクトリの名前付き属性ファイルすべて、および directory1 自体に対し、隠しシステム属性が設定されます。

例 26 ZFS ファイルの hidden および system システム属性を設定する

次の例では、ZFS ファイルの hidden および system システム属性を設定します。

$ chmod S+cHS file1

または

$ chmod S+vhidden,+vsystem file1

または

$ chmod S+v{hidden,system} file1

または

$ chmod S+c{-HS--------} file1

または

$ chmod S-v{nohidden,nosystem} file1

または

$ chmod S-v{hidden,system},+v{hidden,system} file1

例 27 ZFS ファイルのすべてのシステム属性をクリアする

次の例では、ZFS ファイルのシステム属性をすべてクリアします。

$ chmod S-a file1

または

$ chmod S=v{} file1

次の 2 つの例では、指定された最後の属性操作が優先されます。

この例では、置換属性名リスト ({}) により file1 のシステム属性がすべてクリアされます。

$ chmod S+cHS,=v{} file1

この例では、クリア属性操作 (-a) により file1 のシステム属性がすべてクリアされます。

$ chmod S+vhidden,+vsystem,-a file1

例 28 ファイルのすべてのブール型読み書きシステム属性の値を設定する

次の例では、あるファイルのすべてのブール型読み書きシステム属性の値を、別のファイルのブール型読み書きシステム属性と同じに設定します。

$ chmod S=v`ls -/v file1|sed -n '2s/.*{/{/p'` file2

適切な特権および file1 file2 がサポートされる同じシステム属性を保持しているという前提で、file1 に設定されたすべてのシステム属性が file2 に対しても設定されます。クリアされた file1 のすべてのシステム属性が、file2 でもクリアされます。

環境変数

chmod の実行に影響を与える次の環境変数についての詳細は、environ(5) を参照してください。LANGLC_ALLLC_CTYPELC_MESSAGES、および NLSPATH

終了ステータス

次の終了ステータスが返されます。

0

正常終了。

>0

エラーが発生した。

属性

属性についての詳細は、マニュアルページの attributes(5) を参照してください。

属性タイプ
属性値
使用条件
system/core-os
CSI
有効
インタフェースの安定性
確実

関連項目

getfacl(1), ls(1), setfacl(1), chmod(2), fgetattr(3C), acl(5), attributes(5), environ(5), fsattr(5), largefile(5), standards(5)

『Oracle Solaris 11.1 の管理: ZFS ファイルシステム』

注意事項

ディレクトリのセットグループ ID ビットをそっくり置き換えることはできません。 g+s または g–s を使用してください。

chmod は規定に反しないかぎり、無意味なモード作成でも許可します (たとえば、テキストファイルを実行可能にする)。chmod は強制ロックが意味をなすか否かを見るために、ファイルのタイプをチェックすることはありません。

ファイルシステムが nosuid オプションでマウントされている場合、setuid の実行は許可されません。

chmod を使用して ACL エントリを持つファイル上のファイルグループ所有者のアクセス権を変更すると、ファイルグループ所有者のアクセス権と ACL マスクの両方が、新しいアクセス権に変わります。新しい ACL マスクのアクセス権は、そのファイル上に ACL エントリを持つ追加ユーザーおよびグループの実効アクセス権を変更する場合があるので注意が必要です。getfacl(1) または ls(1) コマンドを使用して、すべての ACL エントリに適切なアクセス権が設定されていることを確認してください。