Skip to content

Commit

Permalink
Correct reported file permissions to be read-only (#501)
Browse files Browse the repository at this point in the history
Signed-off-by: Dave Henderson <[email protected]>
  • Loading branch information
hairyhenderson authored Jan 6, 2024
1 parent 122b14e commit f96a12b
Show file tree
Hide file tree
Showing 11 changed files with 38 additions and 38 deletions.
2 changes: 1 addition & 1 deletion awssmfs/awssm.go
Original file line number Diff line number Diff line change
Expand Up @@ -359,7 +359,7 @@ func (f *awssmFile) getSecret() error {
}

// populate fi
f.fi = internal.FileInfo(f.name, seclen, 0o644, *modTime, "")
f.fi = internal.FileInfo(f.name, seclen, 0o444, *modTime, "")

return nil
}
Expand Down
2 changes: 1 addition & 1 deletion awssmpfs/awssmp.go
Original file line number Diff line number Diff line change
Expand Up @@ -364,7 +364,7 @@ func (f *awssmpFile) getParameter() error {
}

// populate fi
f.fi = internal.FileInfo(f.name, n, 0o644, *modTime, contentType)
f.fi = internal.FileInfo(f.name, n, 0o444, *modTime, contentType)

return nil
}
Expand Down
8 changes: 4 additions & 4 deletions blobfs/blob.go
Original file line number Diff line number Diff line change
Expand Up @@ -359,12 +359,12 @@ func (f *blobFile) Stat() (fs.FileInfo, error) {
return nil, err
}

mode := fs.FileMode(0o644)
mode := fs.FileMode(0o444)

azResp := azblobblob.GetPropertiesResponse{}
if out.As(&azResp) && *azResp.ContentType == "" {
// this is likely a directory
mode = fs.ModeDir
mode |= fs.ModeDir | 0o111
}

if fakeModTime != nil {
Expand Down Expand Up @@ -433,9 +433,9 @@ func (f *blobFile) ReadDir(n int) ([]fs.DirEntry, error) {
return nil, err
}

mode := fs.FileMode(0o644)
mode := fs.FileMode(0o444)
if obj.IsDir {
mode = fs.ModeDir
mode |= fs.ModeDir | 0o111
}

// container.BlobItem for objects, container.BlobPrefix for "directories"
Expand Down
2 changes: 1 addition & 1 deletion blobfs/blob_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -235,7 +235,7 @@ func TestBlobFS_ReadDir(t *testing.T) {

fi, err = f.Stat()
assert.NoError(t, err)
assert.Equal(t, fs.FileMode(0o644), fi.Mode())
assert.Equal(t, fs.FileMode(0o444), fi.Mode())
}

func TestBlobFS_CleanCdkURL(t *testing.T) {
Expand Down
2 changes: 1 addition & 1 deletion consulfs/consul.go
Original file line number Diff line number Diff line change
Expand Up @@ -282,7 +282,7 @@ func (f *consulFile) get() error {
}

f.fi = internal.FileInfo(name, int64(len(kvPair.Value)),
0o644, time.Time{}, "",
0o444, time.Time{}, "",
)

f.body = io.NopCloser(bytes.NewReader(kvPair.Value))
Expand Down
12 changes: 6 additions & 6 deletions consulfs/consul_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -267,9 +267,9 @@ func TestReadDirFS(t *testing.T) {
assert.NoError(t, err)

des := []fs.DirEntry{
internal.FileInfo("bar", 3, 0o644, time.Time{}, "").(fs.DirEntry),
internal.FileInfo("bar", 3, 0o444, time.Time{}, "").(fs.DirEntry),
internal.DirInfo("bazDir", time.Time{}).(fs.DirEntry),
internal.FileInfo("foo", 3, 0o644, time.Time{}, "").(fs.DirEntry),
internal.FileInfo("foo", 3, 0o444, time.Time{}, "").(fs.DirEntry),
}
assert.EqualValues(t, des, de)

Expand All @@ -282,9 +282,9 @@ func TestReadDirFS(t *testing.T) {
assert.NoError(t, err)

des = []fs.DirEntry{
internal.FileInfo("bar", 3, 0o644, time.Time{}, "").(fs.DirEntry),
internal.FileInfo("bar", 3, 0o444, time.Time{}, "").(fs.DirEntry),
internal.DirInfo("bazDir", time.Time{}).(fs.DirEntry),
internal.FileInfo("foo", 3, 0o644, time.Time{}, "").(fs.DirEntry),
internal.FileInfo("foo", 3, 0o444, time.Time{}, "").(fs.DirEntry),
}
assert.EqualValues(t, des, de)
}
Expand All @@ -310,7 +310,7 @@ func TestReadDirN(t *testing.T) {
assert.NoError(t, err)

des := []fs.DirEntry{
internal.FileInfo("bar", 3, 0o644, time.Time{}, "").(fs.DirEntry),
internal.FileInfo("bar", 3, 0o444, time.Time{}, "").(fs.DirEntry),
}
assert.EqualValues(t, des, de)

Expand All @@ -319,7 +319,7 @@ func TestReadDirN(t *testing.T) {

des = []fs.DirEntry{
internal.DirInfo("bazDir", time.Time{}).(fs.DirEntry),
internal.FileInfo("foo", 3, 0o644, time.Time{}, "").(fs.DirEntry),
internal.FileInfo("foo", 3, 0o444, time.Time{}, "").(fs.DirEntry),
}
assert.EqualValues(t, des, de)

Expand Down
30 changes: 15 additions & 15 deletions examples/fscli/main_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,31 +22,31 @@ func TestLs(t *testing.T) {
mtime := time.Unix(0, 0).UTC()

fsys = fstest.MapFS{
"a": {ModTime: mtime, Mode: 0o644, Data: []byte("a")},
"a": {ModTime: mtime, Mode: 0o444, Data: []byte("a")},
"b": {
ModTime: mtime.AddDate(1, 1, 1).Add(12 * time.Hour),
Mode: 0o750, Data: bytes.Repeat([]byte("b"), 512),
Mode: 0o550, Data: bytes.Repeat([]byte("b"), 512),
},
"c": {ModTime: mtime, Mode: 0o600, Data: bytes.Repeat([]byte("c"), 2560)},
"emptydir": {ModTime: mtime, Mode: 0o755 | fs.ModeDir},
"dir": {ModTime: mtime, Mode: 0o755 | fs.ModeDir},
"dir/a": {ModTime: mtime, Mode: 0o644, Data: []byte("aa")},
"dir/b": {ModTime: mtime, Mode: 0o644, Data: []byte("bb")},
"c": {ModTime: mtime, Mode: 0o400, Data: bytes.Repeat([]byte("c"), 2560)},
"emptydir": {ModTime: mtime, Mode: 0o555 | fs.ModeDir},
"dir": {ModTime: mtime, Mode: 0o555 | fs.ModeDir},
"dir/a": {ModTime: mtime, Mode: 0o444, Data: []byte("aa")},
"dir/b": {ModTime: mtime, Mode: 0o444, Data: []byte("bb")},
}

err = fsLs(fsys, ".", w)
assert.NoError(t, err)
assert.Equal(t, ` -rw-r--r-- 1B 1970-01-01 00:00 a
-rwxr-x--- 512B 1971-02-02 12:00 b
-rw------- 2.5KiB 1970-01-01 00:00 c
drwxr-xr-x 1970-01-01 00:00 dir
drwxr-xr-x 1970-01-01 00:00 emptydir
assert.Equal(t, ` -r--r--r-- 1B 1970-01-01 00:00 a
-r-xr-x--- 512B 1971-02-02 12:00 b
-r-------- 2.5KiB 1970-01-01 00:00 c
dr-xr-xr-x 1970-01-01 00:00 dir
dr-xr-xr-x 1970-01-01 00:00 emptydir
`, w.String())
}

func TestCat(t *testing.T) {
fsys := fstest.MapFS{
"a": {ModTime: time.Unix(0, 0).UTC(), Mode: 0o644, Data: []byte("aaa")},
"a": {ModTime: time.Unix(0, 0).UTC(), Mode: 0o444, Data: []byte("aaa")},
}

w := &bytes.Buffer{}
Expand All @@ -58,7 +58,7 @@ func TestCat(t *testing.T) {

func TestStat(t *testing.T) {
fsys := fstest.MapFS{
"a.txt": {ModTime: time.Unix(0, 0).UTC(), Mode: 0o644, Data: []byte("aaa")},
"a.txt": {ModTime: time.Unix(0, 0).UTC(), Mode: 0o444, Data: []byte("aaa")},
}

w := &bytes.Buffer{}
Expand All @@ -68,7 +68,7 @@ func TestStat(t *testing.T) {
assert.Equal(t, `a.txt:
Size: 3B
Modified: 1970-01-01T00:00:00Z
Mode: -rw-r--r--
Mode: -r--r--r--
Content-Type: text/plain; charset=utf-8
`, w.String())
}
2 changes: 1 addition & 1 deletion httpfs/http.go
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,7 @@ func (f *httpFile) request(method string) (io.ReadCloser, error) {
modTime, _ = http.ParseTime(mod)
}

f.fi = internal.FileInfo(f.name, resp.ContentLength, 0o644, modTime, resp.Header.Get("Content-Type"))
f.fi = internal.FileInfo(f.name, resp.ContentLength, 0o444, modTime, resp.Header.Get("Content-Type"))

if resp.StatusCode == 0 || resp.StatusCode >= 400 {
return nil, fmt.Errorf("http GET failed with status %d", resp.StatusCode)
Expand Down
2 changes: 1 addition & 1 deletion internal/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ func FileInfo(name string, size int64, mode fs.FileMode, modTime time.Time, cont
// DirInfo creates a fs.FileInfo for a directory with the given name. Use
// FileInfo to set other values.
func DirInfo(name string, modTime time.Time) fs.FileInfo {
return FileInfo(name, 0, fs.ModeDir, modTime, "")
return FileInfo(name, 0, fs.ModeDir|0o555, modTime, "")
}

type staticFileInfo struct {
Expand Down
2 changes: 1 addition & 1 deletion vaultfs/vault.go
Original file line number Diff line number Diff line change
Expand Up @@ -444,7 +444,7 @@ func (f *vaultFile) Stat() (fs.FileInfo, error) {
return internal.FileInfo(
strings.TrimSuffix(path.Base(f.name), "/"),
int64(len(b)),
0o644,
0o444,
modTime,
"application/json",
), nil
Expand Down
12 changes: 6 additions & 6 deletions vaultfs/vault_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -251,9 +251,9 @@ func TestReadDirFS(t *testing.T) {
assert.NoError(t, err)

des := []fs.DirEntry{
internal.FileInfo("bar", 15, 0o644, time.Time{}, "application/json").(fs.DirEntry),
internal.FileInfo("bar", 15, 0o444, time.Time{}, "application/json").(fs.DirEntry),
internal.DirInfo("bazDir", time.Time{}).(fs.DirEntry),
internal.FileInfo("foo", 15, 0o644, time.Time{}, "application/json").(fs.DirEntry),
internal.FileInfo("foo", 15, 0o444, time.Time{}, "application/json").(fs.DirEntry),
}
assert.EqualValues(t, des, de)

Expand All @@ -264,9 +264,9 @@ func TestReadDirFS(t *testing.T) {
assert.NoError(t, err)

des = []fs.DirEntry{
internal.FileInfo("bar", 15, 0o644, time.Time{}, "application/json").(fs.DirEntry),
internal.FileInfo("bar", 15, 0o444, time.Time{}, "application/json").(fs.DirEntry),
internal.DirInfo("bazDir", time.Time{}).(fs.DirEntry),
internal.FileInfo("foo", 15, 0o644, time.Time{}, "application/json").(fs.DirEntry),
internal.FileInfo("foo", 15, 0o444, time.Time{}, "application/json").(fs.DirEntry),
}
assert.EqualValues(t, des, de)
}
Expand All @@ -290,15 +290,15 @@ func TestReadDirN(t *testing.T) {
assert.NoError(t, err)

des := []fs.DirEntry{
internal.FileInfo("foo", 15, 0o644, time.Time{}, "application/json").(fs.DirEntry),
internal.FileInfo("foo", 15, 0o444, time.Time{}, "application/json").(fs.DirEntry),
}
assert.EqualValues(t, des, de)

de, err = dir.ReadDir(2)
assert.NoError(t, err)

des = []fs.DirEntry{
internal.FileInfo("bar", 15, 0o644, time.Time{}, "application/json").(fs.DirEntry),
internal.FileInfo("bar", 15, 0o444, time.Time{}, "application/json").(fs.DirEntry),
internal.DirInfo("bazDir", time.Time{}).(fs.DirEntry),
}
assert.EqualValues(t, des, de)
Expand Down

0 comments on commit f96a12b

Please sign in to comment.