Azure Data Lake Storage Account Share 9p File System

dlfs

Azure storage account (data lake) v2 as a 9p file system.

Fork of abfs.

Written in Go.

Created during the 2021 MS hackathon.

Build

Currently the go.mod file looks for a ../styx directory as there is a bug in the stock styx package.

A PR has been opened.

The fix is in the rwalk_fix branch of https://github.com/seh-msft/styx.

; git clone -b rwalk_fix https://github.com/seh-msft/styx ../styx
; go build

Requirements

What you need:

  1. Azure Storage Account configured for Data Lake v2
  2. A file in said storage account a. Should have a url such as: https://seandl.file.core.windows.net/dlfsfs

Usage

Invocation:

; ./dlfs -h
Usage of dlfs:
  -D	Chatty 9p tracing
  -V	Verbose 9p error output
  -fileshare string
    	Name of file share to fs-ify (default "dlfsfs")
  -p string
    	TCP port to listen for 9p connections (default ":1337")
;

Under the Inferno fork Purgatorio:

; mount -Ac tcp!127.0.0.1!1337 /n/dlfs
; lc
sam.bat*   somedir/   something* test*
; cat something
hello
; echo more >> something
; touch newthing
; echo 'hi' >> newthing
; rm newthing
; cd somedir
; lc
cd.ps1*
; cat cd.ps1
if($Args.Count -lt 1) {
        Set-Location $HOME
} else {
        $params = $Args[0]
        Set-Location $params
}
; cd ..
; lc
sam.bat*   somedir/   something* test*
; touch foo
; echo bar >> foo
; ls
sam.bat
somedir
something
test
; ls
sam.bat
somedir
something
test
;

Under 9pfuse:

sehinche$ 9pfuse 'tcp!127.0.0.1!1337' ~/n/dlfs
sehinche$ cd ~/n/dlfs
ls
dlfs$ ls
sam.bat  somedir  something  test
dlfs$ touch hi
touch: cannot touch 'hi': Numerical result out of range
dlfs$ lc
sam.bat*   somedir/   something* test*
dlfs$ ls
sam.bat  somedir  something  test
dlfs$ cat test
foo
bar
whatever
dlfs$ echo blah >> test
dlfs$ cat test
foo
bar
whatever
blah
dlfs$ ls
sam.bat  somedir  something  test
dlfs$ ls
foo  sam.bat  somedir  something  test
dlfs$ cat foo
bar
dlfs$ rm foo
dlfs$ ls
ls: cannot access 'foo': Numerical result out of range
foo  sam.bat  somedir  something  test
dlfs$ ls
sam.bat  somedir  something  test
dlfs$

Install

; go install

Bugs

  • Directory info is stuttered on Close() calls on the directory as race conditions can arise
    • Grounded in the design of the 'styx' module
    • Results update on second call of ls(1) if a new file is created
  • New file creation does not work under 9pfuse
    • Not a dlfs bug as far as I can tell
  • Output is very verbose
  • Every user is none

Reference

Owner
Sean Hinchee
MSRC V&M
Sean Hinchee
Similar Resources

SDBOTs Inifinity Account Generator ⚙️

Account-Generator Variables Env Vars - BOT_TOKEN - Get it from @BotFather CHANNEL_ID - Channel ID of Join Check Channel. CHANNEL_USERNAME - Channel Us

Dec 10, 2021

This repo introduces a simple server, which provided some APIs for search DAS account's records or reverse records

Prerequisites Install Usage Others Das-Account-Indexer This repo introduces a simple server, which provided some APIs for search DAS account's records

Dec 13, 2022

WeChat Official Account's Verification using Revel

Welcome to Revel A high-productivity web framework for the Go language. Start the web server: revel run myapp Go to http://localhost:9000/ and you'll

Dec 25, 2021

An app/container built in Go to automate a Twitter account using Notion

Notion Tweeter Notion Tweeter is a utility I built using Go to help automate scheduling my tweets using Notion as a backend. More documentation coming

Sep 26, 2022

A Go utility to quickly authenticate a third party application with a Plex account.

Plex Authentication (in Go!) Installation As a Go library: go get github.com/BrenekH/go-plexauth As a CLI: go install github.com/BrenekH/go-plexauth/c

Jan 7, 2022

The library parse the system netrc file for golang

gonetrc This is the library parse the system netrc file, support linux/macos/win

Jul 8, 2022

File-generator - Creates a file filled with bytes

creates a file filled with bytes ./filegen from to from : index of first piece t

Feb 14, 2022

A go SDK for the data available via data.gov.gr

go-data-gov-gr-sdk A Go based SDK to access the public data provided by the Greek Government and are available at https://www.data.gov.gr/ Quick Start

Jan 24, 2022

Abusing Discord for unlimited cloud storage

Discord Cloud Storage Abusing Discord's servers for unlimited cloud storage! So, what is this? Infamous 8MB limit for non-nitro users can get pretty a

Nov 26, 2022
Account - Ant Chain ACCOUNT SDK for Go

English | 简体中文 Ant Chain ACCOUNT SDK for Go Requirements It's necessary for you

Jan 13, 2022
Periodically collect data about my Twitter account and check in to github to preserve an audit trail.

Twitter audit trail backup This repository backs up my follower list, following list, blocked accounts list and muted accounts list periodically using

Dec 28, 2022
csg ("Credential Storage with Go") - a tool to organize the storage of credentials found during a CTF or Pentest.
csg (

csg csg ("Credential Storage with Go") - a tool to organize the storage of credentials found during a CTF or Pentest. Check out my blog on csg for mor

Dec 9, 2021
Microsoft Azure SDK for Go

Azure SDK for Go This repository is for active development of the Azure SDK for Go. For consumers of the SDK you can follow the links below to visit t

Jan 6, 2023
Program to fetch public IP ranges of AWS, Azure and Google

cloudip This program will retrieve a list of all public IP address ranges (v4 or v6) for the three major cloud vendors: Amazon AWS, Microsoft Azure an

Aug 21, 2022
Lambda stack to turn off and destroy all resources from your personal AWS Account to avoid billing surprises
Lambda stack to turn off and destroy all resources from your personal AWS Account to avoid billing surprises

AWS, Turn off my Account, please Lambda stack to turn off and destroy all resources from your personal AWS Account to avoid billing surprises Resource

Oct 25, 2022
Self-service account creation and credential reset for FreeIPA
Self-service account creation and credential reset for FreeIPA

Auri Auri stands for: Automated User Registration IPA Auri implements self service account creation and reset of credentials for FreeIPA Features Requ

Dec 21, 2022
Lookup or replace AWS account IDs with their names and vice versa

awsacc A trusty helper for working with AWS account IDs. Working with AWS account IDs often involves more manual effort than necessary. Often account

Oct 14, 2021
Download tracks with free account

Spotify This module works with Spotify free accounts. It can download individual tracks. It downloads the audio files served by Spotify's servers and

Feb 22, 2022
Spotify account generator, just for fun purpose.

go-spotify-account-generator Spotify account generator, just for fun purpose. Install $ go get github.com/HamzaAnis/go-spotify-account-generator How

Dec 16, 2022